ruby – 搜索文件夹及其所有子文件夹的特定类型的文件

我试图搜索给定类型(例如.pdf)在给定文件夹中的所有文件,并将其复制到一个新的文件夹。我需要做的是指定根文件夹,并搜索该文件夹及其所有子文件夹的任何匹配给定类型(.pdf)的文件。任何人都可以给我一个手如何我应该搜索根文件夹的子文件夹及其子文件夹等。听起来像一个递归方法会在这里做的伎俩,但我不能正确实现一个? (我正在实现这个程序在ruby的方式)。
最佳答案
您想要Find模块。 Find.find接受一个包含路径的字符串,并将父路径以及每个文件和子目录的路径传递到一个伴随的块。一些示例代码:

require 'find'

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

这将递归搜索一个路径,并将所有以.pdf结尾的文件名存储在数组中。

转载注明原文:ruby – 搜索文件夹及其所有子文件夹的特定类型的文件 - 代码日志