2

ディレクトリ内の名前でファイルを検索しようとしています。この問題に対する最善のアプローチが何であるかはわかりません。ファイルは、ルート ディレクトリ内の他のディレクトリにネストできます。

4

3 に答える 3

4

たとえば、Dir.globを使用できます。

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

現在のディレクトリで「*.rb」ファイルを再帰的に探します。

于 2012-11-29T16:18:36.763 に答える
4

Dir.globまたはを使用できますDir[]

Dir['the_directory/**/the_filename']

は、**0 個以上のディレクトリに再帰的に一致します。一致するファイル名の配列を返します。

于 2012-11-29T16:13:15.163 に答える
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、あなたのニーズに。

于 2012-11-29T16:03:51.307 に答える