기본적으로 나는 내부에 pwe와 pws 파일을 포함하고있는 zip 파일들을 만들고 있습니다.rails rubyzip 새로운 zip 파일 안에 여러 개의 zip 파일 복사본 만들기
은 다음 코드는이 개 파일의 (a PWS와 PWE)를 포함 orgname_org_member_orguser1.zip 로 명명 된 zip 파일의 무리를 생성
내가 코드를하도록 할@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 파일을 저장하고 지정한 경로에 저장하십시오.)
위의 내용 외에도 위에서 만든 모든 zip 파일을 포함하는 all.zip이라는 다른 zip 파일을 만들고 싶습니다.
의미 all.zip => file1.zip, file2.zip 등
나는 위의 내 코드에서 그 논리를 incoporate하는 방법을 잘 모르겠습니다. 어떤 도움을 주시면 감사하겠습니다.
EDIT : 디렉토리의 모든 파일을 검색하고 추가하고 싶지 않습니다. 위 코드에서 생성 된 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
참고 :
@faraz에 감사드립니다.하지만 디렉토리의 모든 파일을 검색하고 추가하고 싶지는 않습니다. 위 코드에서 생성 된 zip 파일 만 필요합니다. – Micheal