如果目录为空则快速测试

时间:2014-02-05 12:11:59

标签: r performance directory is-empty

测试目录是否为空的最快方法是什么?

当然我可以检查

的长度
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至关重要,它将避免以其他方式进行排序。

1 个答案:

答案 0 :(得分:2)

if(length(dir(all.files=TRUE)) ==0)怎么样?

我不确定你的资格是“快”,但如果dir需要很长时间,有人会滥用你的文件系统:-(。