如果目录为空则快速测试

krl*_*mlr 9 directory performance r is-empty

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

当然我可以检查长度

list.files(path, all.files = TRUE, include.dirs = TRUE, no.. = TRUE)
Run Code Online (Sandbox Code Playgroud)

但这需要枚举我宁愿避免的目录的全部内容.

编辑:我正在寻找便携式解决方案.

编辑^ 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 
Run Code Online (Sandbox Code Playgroud)

-f交换机是至关重要的ls,这将避免将要发生,否则排序.

Car*_*oft 2

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

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