我试图在目录中按名称查找文件。我不确定解决这个问题的最佳方法是什么。该文件可以嵌套在根目录中的其他目录中。
答案 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_name
和path
。
答案 2 :(得分:3)