寻找文件名类似于Ruby / Rails的方法

5

我想在一个目录中查找所有文件名类似于“test”的文件。

所以在我的目录(/test/files/example)中,我有以下文件:

  • test_1
  • test_2
  • test_5
  • test_9

如何使用Ruby的File类获取所有文件?我尝试了以下方法,但我认为你可以看到其中的困难:

10.times do |count|
  file_path = "/test/files/example/test_#{count}.wav"
  if File.exist?(file_path)
    @files[count] = file_path
    next
  end
  break
end

1
你不应该在循环中使用 break,因为这样你就无法通过 test_2。你只是想将它们的路径名收集到 @files 数组中吗?我并没有“看到困难”(除了 break 问题),因为你的最终目标不清楚。你可能需要查看 Dir.glob - lurker
是的,我已经得到了答案。但问题在于,如果在这种情况下找不到test_3文件,它会中断。但是如果没有中断,即使它找不到任何东西,它也会运行10次。 - Zero
1个回答

12

通配符是最好的选择。这将返回与您的模式匹配的文件名数组。

Dir["/test/files/example/test_*.wav"]

返回值是一个字符串数组,您可以按任何您喜欢的方式进行排序。


哇,谢谢,这很容易。有没有一种方法可以对它们进行排序? - Zero
1
这是一个字符串数组。您可以按照任何喜欢的方式进行排序。 - Sergio Tulentsev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接