File io 如果没有';不存在?

File io 如果没有';不存在?,file-io,julia,File Io,Julia,如果我想将文件写入C:/output/results.csv如果目录不存在,有什么简单的方法来创建它?我之所以要这样做,是因为CSV.write(路径、数据)错误(如果C:/output/不存在) mkdir如果目录已存在,则会出现错误。我目前正在做以下工作,但是否有更安全/更清洁的方法 try mkdir("C:/output") catch # if errors, likely already exists end 编辑: 正如一位评论者指出的那样,mkpath将创建一

如果我想将文件写入
C:/output/results.csv
如果目录不存在,有什么简单的方法来创建它?我之所以要这样做,是因为
CSV.write(路径、数据)
错误(如果
C:/output/
不存在)

mkdir
如果目录已存在,则会出现错误。我目前正在做以下工作,但是否有更安全/更清洁的方法

try 
    mkdir("C:/output")
catch
    # if errors, likely already exists
end
编辑: 正如一位评论者指出的那样,
mkpath
将创建一个不存在的目录,并且在任何一种情况下都将返回目录名


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

您可以使用以下方法事先明确检查目录是否存在:

但这并不一定能处理所有的角落情况,比如路径已经存在,但却是指向另一个目录的链接。标准库中的函数应为您处理所有问题:

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

mkpath(誓言)
将创建一个不存在的目录,并在创建后返回路径。如果它已经存在,则返回路径。

mkpath
如果目录存在,则在GNU/Linux上不会出错。这是Windows操作系统吗?阅读
mkapth
的代码在我看来,它已经在执行您手动执行的
try
/
catch
。我不明白你为什么会出错。你到底得到了什么错误?检查磁盘上是否存在与该路径相关的任何内容,包括链接等
mkpath(path)
CSV.write(joinpath(path, "results.csv"), data)