我编写了一个函数来列出特定文件夹中的 PDF 并将它们压缩,但由于某种原因,zip 内容已损坏。
该脚本基本上执行以下操作: a) 创建一个名为 的 zip$batch_id
文件$target_dir
。b) 将一个以 命名的 XML 添加$batch_id(.xml)
到 zip 根目录。c) 将文件夹中找到的所有 PDF 添加$target_dir/pdf/
到/pdf/
zip 文件夹中。
结果:zip 已成功创建,可以提取 XML,但 PDF 似乎已损坏(文件非常小,无法打开)。
def zip_batch
puts "Zipping batch..."
require 'zippy'
Zippy.create("#{$target_dir}"+"\\"+"#{$batch_id}"+".zip") do |zip|
zip ["#{$batch_id}"+".xml"] = File.open("#{$target_dir}"+"\\"+"#{$batch_id}"+".xml")
Dir.glob("#{$target_dir}"+"/pdf/*.pdf").each do |filename|
puts " -> Adding "+ filename.gsub("#{$target_dir}"+"/","")
puts filename
zip[filename.gsub("#{$target_dir}"+"/","")] = File.open(filename)
end
end
end