Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 打开数组中的所有文件,并将文件内容添加到新数组中_Ruby - Fatal编程技术网

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

Ruby 打开数组中的所有文件,并将文件内容添加到新数组中,ruby,Ruby,我想获取特定类型文件夹中所有文件的内容,并将其内容添加到数组中。因为File.open只接受字符串,所以我不知道该怎么做。我认为最接近的是: Dir.glob(*).each do|file| filearray = File.open(file).read 但除此之外,我还不知道如何将输出放入数组变量中,以便以后代码的其他部分使用。s\u folder\u path='C:/Test' s_folder_path = 'C:/Test' a_files = [] Dir.foreach

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

Dir.glob(*).each do|file|
  filearray = File.open(file).read
但除此之外,我还不知道如何将输出放入数组变量中,以便以后代码的其他部分使用。

s\u folder\u path='C:/Test'
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
a_文件=[] Dir.foreach(s|u文件夹|路径)。每个do |文件| a_files
s_文件夹路径='C:/Test'
a_文件=[]
Dir.foreach(s|u文件夹|路径)。每个do |文件|

a_files你基本上拥有它,但是像这样的东西怎么样

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

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

您基本上拥有它,但是类似这样的东西呢

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

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

此目录中的文件有多大?这可能会使您的系统停止。共有14个文件,最大的是800KB。此目录中的文件有多大?这可能会使您的系统停止。共有14个文件,最大的是800kb