1. ホーム
  2. ruby

フォルダとそのすべてのサブフォルダから、特定の種類のファイルを検索する方法

2023-11-05 08:49:10

質問

私は、与えられたフォルダ内の与えられたタイプのすべてのファイルを検索し、それらを新しいフォルダにコピーしようとしています。

私は、ルート フォルダーを指定し、そのフォルダーとそのすべてのサブフォルダーから、与えられたタイプに一致するすべてのファイルを検索する必要があります。

ルート フォルダーのサブフォルダーとそのサブフォルダーを検索するにはどうしたらよいでしょうか。再帰的な方法が機能するように思えますが、正しく実装することができません。

どのように解決するのですか?

あなたは 検索 モジュールで Find.find はパスを含む文字列を受け取り、各ファイルとサブディレクトリのパスと一緒に親パスを付随するブロックに渡します。いくつかのサンプルコードです。

require 'find'

pdf_file_paths = []
Find.find('path/to/search') do |path|
  pdf_file_paths << path if path =~ /.*\.pdf$/
end

これはパスを再帰的に検索し、.pdfで終わるすべてのファイル名を配列に格納します。