【发布时间】:2014-03-01 20:47:02
【问题描述】:
测试目录是否为空的最快方法是什么?
我当然可以检查长度
list.files(path, all.files = TRUE, include.dirs = TRUE, no.. = TRUE)
但这需要枚举我宁愿避免的目录的全部内容。
编辑:我正在寻找便携式解决方案。
EDIT^2:大型目录的一些时间安排(在最初为空的目录中运行,它将创建 100000 个空文件):
system.time(file.create(as.character(0:99999)))
# user system elapsed
# 0.720 12.223 14.948
system.time(length(dir()))
# user system elapsed
# 2.419 0.600 3.167
system.time(system("ls | head -n 1"))
# 0
# user system elapsed
# 0.788 0.495 1.312
system.time(system("ls -f | head -n 3"))
# .
# ..
# 99064
# user system elapsed
# 0.002 0.015 0.019
-f 开关对于ls 至关重要,它将避免否则会发生的排序。
【问题讨论】:
-
我刚刚删除了我的 cmets(仅在 linux 上的解决方案),但您说得对,可移植性是一个不错的功能。
-
这个问题stackoverflow.com/questions/18685576/… 有一条评论建议
rmdir如果目录非空,则“应该”失败。检查您的权限级别! -
是的,但是...对于空目录或“非大”目录是否更快,您更有可能遇到哪个目录? :-(
-
@CarlWitthoft:是的,对于“非大量”数据,冒泡排序比快速排序更快......我想知道,我很好奇,我已经发布了一个问题。让我们拭目以待,看看有没有好的答案。
标签: r performance directory is-empty