要使用Dir.glob获取仅文件的列表,您可以使用以下代码:
Dir.glob("*").select { |file| File.file?(file) }
这将返回一个数组,其中包含当前目录中的所有文件。Dir.glob
方法会返回一个包含匹配模式的所有文件和目录的数组,然后我们使用select
方法过滤出仅文件。File.file?
方法用于检查给定路径是否为文件。
在这个例子中,我们使用了通配符*
来匹配当前目录中的所有文件和目录。如果您想要在子目录中查找文件,您可以使用递归方法,如下所示:
def get_files(path)
files = []
Dir.foreach(path) do |entry|
next if entry == '.' || entry == '..'
entry_path = File.join(path, entry)
if File.file?(entry_path)
files<< entry_path
elsif File.directory?(entry_path)
files.concat(get_files(entry_path))
end
end
files
end
get_files('.')
这个方法会返回一个数组,其中包含给定目录及其子目录中的所有文件。请注意,这个方法会递归地遍历目录,因此可能会导致性能问题,如果目录结构非常复杂。
领取专属 10元无门槛券
手把手带您无忧上云