我需要在特定目录中创建子目录。
在erlang文档中,我只找到文件:make_dir / 1,它在项目源目录中创建dir。如何在其他目录中创建目录?
我找到解决方案。也许有人会感兴趣:
filelib:ensure_dir("/this/path/will/soon/exist/").
谢谢。
答案 0 :(得分:12)
您可以使用filelib:ensure_dir
确保目录存在(如果不存在,则创建它,这就是您要查找的目录)。
示例:
filelib:ensure_dir("/this/path/will/soon/exist/")
参考文献:
答案 1 :(得分:2)
文档必须不清楚,因为您可以使用file:make_dir/1
创建通常允许创建的任何目录。它不在路径中创建所有目录,您必须自己明确地做。
将filelib:ensure_dir/1
与"/"
终止的路径一起使用没有记录,但在代码中明确处理,因此我怀疑它会消失。
答案 2 :(得分:0)
这将创建一个子目录并确认或创建所需的任何父目录
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.