打开数组中的所有文件,并将文件内容添加到新数组中

时间:2013-08-08 18:00:27

标签: ruby

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

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

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

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分: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