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

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

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

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

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

这应该适合你:

 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以满足您的需求。

你可以使用Dir.globDir[]

 Dir['the_directory/**/the_filename'] 

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