2009-12-30 57 views
2

我想獲取特定目錄下所有文件的列表。 Dir.glob的效果很好,但似乎沒有辦法將結果限制爲文件(不包括目錄)。找。 -type f in ruby​​

繼承人就是我現在所擁有的:

files = Dir.glob('my_dir/**/*').reject { |f| File.directory?(f) } 

有沒有做到這一點更優雅的方式?

回答

2

這實際上是去這樣做是一個相當有效的方式,但你也可能使用查找模塊:

require 'find' 

found = [ ] 

Find.find(base_path) do |path| 
    found << path if (File.file?(path)) 
end 
+0

+1:我總是忘了'find'庫,但它是最實在有效的(就程序員而言,無論如何)將POSIX'find'表達式移植到Ruby。 – 2009-12-30 18:02:32