作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想清理临时收集资源。file
模块只有 del_dir/1 要求目录为空。但是没有获取目录中所有文件的功能(使用绝对路径“)
源码如下,如何改正?
delete_path(X)->
{ok,List} = file:list_dir_all(X), %% <--- return value has no absolute path here
lager:debug("_229:~n\t~p",[List]),
lists:map(fun(X)->
lager:debug("_231:~n\t~p",[X]),
ok = file:delete(X)
end,List),
ok = file:del_dir(X),
ok.
最佳答案
您可以使用 os:cmd 通过控制台命令删除目录,尽管这是一种粗略的方法。对于类 unix 的操作系统,它将是:
os:cmd("rm -Rf " ++ DirPath).
-module(directory).
-export([del_dir/1]).
del_dir(Dir) ->
lists:foreach(fun(D) ->
ok = file:del_dir(D)
end, del_all_files([Dir], [])).
del_all_files([], EmptyDirs) ->
EmptyDirs;
del_all_files([Dir | T], EmptyDirs) ->
{ok, FilesInDir} = file:list_dir(Dir),
{Files, Dirs} = lists:foldl(fun(F, {Fs, Ds}) ->
Path = Dir ++ "/" ++ F,
case filelib:is_dir(Path) of
true ->
{Fs, [Path | Ds]};
false ->
{[Path | Fs], Ds}
end
end, {[],[]}, FilesInDir),
lists:foreach(fun(F) ->
ok = file:delete(F)
end, Files),
del_all_files(T ++ Dirs, [Dir | EmptyDirs]).
关于erlang - 如何删除整个非空目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30606773/
在纯 Ruby 中删除目录中所有文件的安全有效方法是什么?我写了 Dir.foreach(dir_path) {|f| File.delete(f) if f != '.' && f != '..'}
我有一个单元测试(在 VS2008 或 VS2010 中使用 MSTest),我在其中创建了一个这样的文件夹: [TestMethod] public void TestMethod1() {
有人在 CVS 中创建了一个空包。我想在 Intellij 中 checkout 这个包,但 intellij 中没有出现任何内容。 有人知道原因以及如何解决吗? 最佳答案 您必须在结帐 Intell
我是一名优秀的程序员,十分优秀!