如何创建不存在的目录?

问题描述 投票:0回答:1

如果我想把一个文件写到 C:/output/results.csv 如果目录不存在,有什么简单的方法让它存在?我想这样做是因为 CSV.write(path,data) 错误,如果 C:/output/ 不存在。

mkdir 如果该目录已经存在,则会出错。我目前正在做以下工作,但有没有更安全的方法?

try 
    mkdir("C:/output")
catch
    # if errors, likely already exists
end

编辑:正如一位评论者指出的那样。mkpath 将创建一个目录,如果它不存在,在任何一种情况下都会返回目录名。

我的问题是混淆了 mkdir (如果目录存在,则错误)和 mkpath 在这种情况下不会出错。

file-io julia
1个回答
3
投票

你可以事先明确地检查该目录是否存在,使用 isdir:

isdir(dir) || mkdir(dir)
CSV.write(joinpath(dir, "results.csv"), data)

但这不一定能处理所有的情况,比如当路径已经存在,但却是另一个目录的链接。列表中的 mkpath 标准库中的函数应该可以为你处理一切。

mkpath(path)
CSV.write(joinpath(path, "results.csv"), data)

0
投票

mkpath(oath) 如果目录不存在,就会创建一个目录,然后返回 path 后,返回路径。如果它已经存在,则返回路径。

© www.soinside.com 2019 - 2024. All rights reserved.