首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Dir.glob获取仅文件的列表?

要使用Dir.glob获取仅文件的列表,您可以使用以下代码:

代码语言:ruby
复制
Dir.glob("*").select { |file| File.file?(file) }

这将返回一个数组,其中包含当前目录中的所有文件。Dir.glob方法会返回一个包含匹配模式的所有文件和目录的数组,然后我们使用select方法过滤出仅文件。File.file?方法用于检查给定路径是否为文件。

在这个例子中,我们使用了通配符*来匹配当前目录中的所有文件和目录。如果您想要在子目录中查找文件,您可以使用递归方法,如下所示:

代码语言:ruby
复制
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('.')

这个方法会返回一个数组,其中包含给定目录及其子目录中的所有文件。请注意,这个方法会递归地遍历目录,因此可能会导致性能问题,如果目录结构非常复杂。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券