Feature #10121
closedDir.empty?
Description
On IRC someone asked how to find out if a directory is empty or not, from within ruby.
It seems as if there was no simple way.
I suggest adding Dir.empty?
On IRC, someone else suggested this:
Dir.entries(dir).size == 2
I do not know if there are better ways but possibly that could
be used for a Dir.empty? functionality?
Updated by nobu (Nobuyoshi Nakada) about 11 years ago
- Description updated (diff)
- Category set to core
- Status changed from Open to Feedback
What should happen if the dir is not a directory name?
Just returns false, or raises Errno::ENOTDIR?
Updated by nobu (Nobuyoshi Nakada) almost 10 years ago
- Related to Feature #12010: Exclude dot and dotdot from Dir#each added
Updated by nobu (Nobuyoshi Nakada) almost 10 years ago
- Assignee set to matz (Yukihiro Matsumoto)
On Windows, root directories of drives don't contain "." nor "..",
and the suggested code (also Dir.entries(dirname).join == "...") doesn't work.
If it is needed in real case, this method should be adopted, I think.
Updated by nobu (Nobuyoshi Nakada) almost 10 years ago
- Status changed from Feedback to Closed
Applied in changeset r53841.
dir.c: Dir.empty?
- dir.c (rb_dir_s_empty_p): add Dir.empty? method, which tells the
argument is the name of an empty directory. [Feature #10121]
Updated by shevegen (Robert A. Heiler) almost 10 years ago
Woot! Woot!
Thanks to nobu the patch monster and matz!
Updated by lucasbuchala (Lucas Buchala) almost 10 years ago
Now that Ruby got a Dir.empty? method, do you think it makes sense to add a File.empty? as an alias for File.zero? ?
(I didn't know if it was worth opening a new issue for this simple suggestion, so I just appended it here, since I see Dir.empty? and File.empty? as related methods, somehow)
Updated by backus (John Backus) over 9 years ago
I commented this on #9969 as well. Given that Dir.empty? is being introduced I think it would be helpful to also introduce either Pathname#empty? (which would check if something is a file or a directory then do the respective empty check) or Pathname#empty_directory? (which would assume the path is referring to a directory).