所以基本上我创建了一堆zip文件,其中包含一个pwe和pws文件。
以下代码生成一组zip文件,命名为orgname_org_member_orguser1.zip它包含2个文件(一个pws和pwe)
@successful_orgs.each do |org|
file = "#{RAILS_ROOT}/my-data/#{org[:location]}_#{org[:member]}_#{org[:username]}.zip"
generate_file(ups_file, org)
end
def generate_file(file, org)
zipfile = Zip::ZipFile.open(file, Zip::ZipFile::CREATE)
pwe_text, pws_text = MyGenerator.password
pwe_file = "#{RAILS_ROOT}/tmp/#{org[:location]}_#{org[:member]}.pwe"
pws_file = "#{RAILS_ROOT}/tmp/#{org[:location]}_#{org[:member]}.pws"
File.open(pwe_file, 'w') { |file| file.write(pwe_text) }
File.open(pws_file, 'w') { |file| file.write(pws_text) }
zipfile.add("#{org[:location]}_#{org[:member]}.pwe", pwe_file)
zipfile.add("#{org[:location]}_#{org[:member]}.pws", pws_file)
zipfile.close
File.delete(pwe_file)
File.delete(pws_file)
end
我想让代码做正在做的事情(创建zip文件并将其存储在指定的路径)
但除了以上内容,我还想创建另一个名为all.zip的zip文件,该文件将包含上面创建的所有zip文件。
意思是,all.zip=>file1.zip、file2.zip等
我不知道如何在上面的代码中融入这种逻辑。如有任何帮助,我们将不胜感激。
编辑:我不想搜索并添加目录中的所有文件。我只想添加在上面的代码中创建的zip文件。
您可以收集数组中的所有zip文件路径,然后迭代地将它们添加到新的zip文件中:
zip_files = []
@successful_orgs.each do |org|
file = "#{RAILS_ROOT}/my-data/#{org[:location]}_#{org[:member]}_#{org[:username]}.zip"
zip_files << file
generate_file(file, org)
end
all_zipped = Zip::ZipFile.open("#{RAILS_ROOT}/tmp/all.zip", Zip::ZipFile::CREATE)
zip_files.each do |f|
all_zipped.add(zip_file)
end
请注意,这样做不会获得任何额外的压缩。