Каков самый быстрый способ проверить, пуст ли каталог?
Конечно, я могу проверить длину
list.files(path, all.files = TRUE, include.dirs = TRUE, no.. = TRUE)
но для этого требуется перечислить все содержимое каталога, чего я бы предпочел избежать.
EDIT: я ищу портативные решения.
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
, он позволит избежать сортировки, которая будет иметь место в противном случае.
rmdir
, который должен завершиться ошибкой, если каталог непустой. Проверьте свой уровень разрешений! - person Carl Witthoft   schedule 05.02.2014