在嵌套目录结构中查找文件

时间:2012-11-29 15:56:56

标签: ruby

我试图在目录中按名称查找文件。我不确定解决这个问题的最佳方法是什么。该文件可以嵌套在根目录中的其他目录中。

3 个答案:

答案 0 :(得分:4)

您可以使用 Dir.glob ,例如:

Dir.glob(File.join("**","*.rb"))

它将以递归方式查找当前目录中的“* .rb”文件。

答案 1 :(得分:3)

这应该适合你:

require 'find'

file_name = /log\Z/
path = './'

found_files = Find.find(path).inject([]) do |files, entry|
  File.file?(entry) && File.basename(entry) =~ file_name ?
    files << entry : files
end

p found_files
#=> ["./Maildir/dovecot.index.log", "./pgadmin.log"]

根据您的需要更改file_namepath

答案 2 :(得分:3)

您可以使用Dir.globDir[]

Dir['the_directory/**/the_filename']

**递归匹配0个或更多目录。它返回一个匹配的文件名数组。