如何将目录的所有文件名读入数组?

时间:2013-03-08 11:08:50

标签: ruby

我想将文件夹中的所有文件名存储到数组中。最好的方法是什么?

3 个答案:

答案 0 :(得分:5)

您可以使用:

files = Dir.foreach(dir).select { |x| File.file?("#{dir}/#{x}") }

这将返回文件名,即不带文件夹。

如果您需要完整路径,请使用以下内容:

files = Dir.foreach(dir) \
           .map { |x| File.expand_path("#{dir}/#{x}") } \
           .select { |x| File.file?(x) }

答案 1 :(得分:2)

您可以使用:

files = Dir.entries(directory)

返回包含给定目录中所有文件名的数组。

请查看Ruby Doc以获取更多信息。

答案 2 :(得分:1)

您也可以使用files=Dir.glob(*)