如何使用ruby获取某个目录中存在的文件夹列表?
Dir.entries()
看起来很接近,但我不知道如何仅限于文件夹。
发布于 2009-12-14 14:02:02
Jordan很接近,但是Dir.entries
没有返回File.directory?
期望的完整路径。试试这个:
Dir.entries('/your_dir').select {|entry| File.directory? File.join('/your_dir',entry) and !(entry =='.' || entry == '..') }
发布于 2011-05-31 04:20:49
我发现这更有用,也更容易使用:
Dir.chdir('/destination_directory')
Dir.glob('*').select {|f| File.directory? f}
它获取当前目录中的所有文件夹,不包括.
和..
。
要递归文件夹,只需使用**
代替*
即可。
还可以将Dir.glob
行作为块传递给Dir.chdir
:
Dir.chdir('/destination directory') do
Dir.glob('*').select { |f| File.directory? f }
end
发布于 2009-12-14 17:27:21
在我看来,Pathname
比普通字符串更适合于文件名。
require "pathname"
Pathname.new(directory_name).children.select { |c| c.directory? }
这将为您提供该目录中所有目录作为路径名对象的数组。
如果您想要字符串
Pathname.new(directory_name).children.select { |c| c.directory? }.collect { |p| p.to_s }
如果directory_name
是绝对的,那么这些字符串也是绝对的。
https://stackoverflow.com/questions/1899072
复制相似问题