测试目录是否为空的最快方法是什么?
当然我可以检查
的长度list.files(path, all.files = TRUE, include.dirs = TRUE, no.. = TRUE)
但这需要枚举我宁愿避免使用的目录的全部内容。
编辑:我正在寻找便携式解决方案。
编辑^ 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
至关重要,它将避免以其他方式进行排序。
答案 0 :(得分:2)
if(length(dir(all.files=TRUE)) ==0)
怎么样?
我不确定你的资格是“快”,但如果dir
需要很长时间,有人会滥用你的文件系统:-(。