0

我想获取特定类型文件夹中所有文件的内容并将它们的内容添加到数组中。由于File.open只接受字符串,我不知道该怎么做。我认为最接近的是:

Dir.glob(*).each do|file|
  filearray = File.open(file).read

但除此之外,我不知道如何将输出转换为数组变量以供以后代码的其他部分使用。

4

2 回答 2

5

你基本上拥有它,但是这样的东西呢?

filearray = Dir.glob('*').select { |f| File.file?(f) }.map { |f| File.read(f) }

select位只是确保您仅提取文件(而不是目录)。如果您有特定的文件扩展名,您也可以将其添加到glob调用中 - 例如,如果您要查找所有 .rb 文件,则可以使用'*.rb'而不是'*'.

于 2013-08-08T18:36:36.000 回答
1
s_folder_path = 'C:/Test'
a_files = []

Dir.foreach(s_folder_path).each do |file|
  a_files << File.open("#{s_folder_path}/#{file}").read if file != "." && file != ".."
end

puts a_files.inspect
于 2013-08-08T18:29:55.343 回答