【发布时间】:2020-07-13 00:55:43
【问题描述】:
我需要在特定目录中创建子目录。
在 erlang 文档中,我只找到在项目源目录中创建目录的 file:make_dir/1。如何在其他目录中创建目录?
我找到了解决办法。也许有人会很有趣:
filelib:ensure_dir("/this/path/will/soon/exist/").
谢谢。
【问题讨论】:
我需要在特定目录中创建子目录。
在 erlang 文档中,我只找到在项目源目录中创建目录的 file:make_dir/1。如何在其他目录中创建目录?
我找到了解决办法。也许有人会很有趣:
filelib:ensure_dir("/this/path/will/soon/exist/").
谢谢。
【问题讨论】:
您可以使用filelib:ensure_dir 确保目录存在(如果不存在,则创建它,这就是您要查找的内容)。
例子:
filelib:ensure_dir("/this/path/will/soon/exist/")
参考资料:
【讨论】:
文档一定不清楚,因为您可以使用file:make_dir/1 创建通常允许创建的任何目录。它不会在路径中创建所有目录,您必须自己明确地执行此操作。
使用filelib:ensure_dir/1 与"/" 终止的路径没有记录,但它在代码中明确处理,所以我怀疑它会消失。
【讨论】:
这将创建一个子目录并确认或创建所需的任何父目录
make_dir(Dir) ->
% create or confirm the parent Dir exists (works recursively)
ok = filelib:ensure_dir(Dir),
% create or confirm Dir exists
case file:make_dir(Dir) of
ok -> ok;
{error, eexist} -> ok;
{error, Reason} -> {error, Reason}
end.
【讨论】: