Fast test if directory is empty
directory, is-empty, performance, r
Solution
How about `if(length(dir(all.files=TRUE)) ==0)` ?
I'm not sure what you qualify as "fast," but if `dir` takes a long time, someone is abusing your filesystem :-(.
Problem
What is the fastest way to test if a directory is empty? Of course I can check the length of ``` list.files(path, all.files = TRUE, include.dirs = TRUE, no.. = TRUE) ``` but this requires enumerating the entire contents of the directory which I'd rather avoid. EDIT: I'm looking for portable solutions. EDIT^2: Some timings for a huge directory (run this in a directory that's initially empty, it will create 100000 empty files): ``` 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 ``` The `-f` switch is crucial for `ls`, it will avoid the sorting that will take place otherwise.