我想用RubyZip壓縮目錄中包含的所有文件。下面是我有:用Ruby on Rails壓縮目錄中的文件
def bundle
#create the ZIPfile with the title of (:id).zip
bundle_filename = "public/attachments/#{self.id}/#{self.id}.zip"
#open the ZIPfile in order to add items in
Zip::ZipFile.open(bundle_filename, Zip::ZipFile::CREATE) {
|zipfile|
Dir.foreach("public/attachments/#{self.id}") do |item|
t = File.open(item)
zipfile.add(t, "public/attachments/#{self.id}")
end
}
#change permissions on ZIPfile
File.chmod(0644, bundle_filename)
self.save
end
這成功地執行了第一行,並創建具有正確名稱的ZIP文件,但它不加入包含在該目錄中的所有文件。有任何想法嗎?
你確定'Dir.foreach'調用是添加項目嗎?你可以使用'Rails.logger'來調試。 – tadman 2012-07-18 18:21:23
看看這個,http://stackoverflow.com/questions/11525484/zipping-all-files-in-a-dir – PriteshJ 2012-07-18 18:23:36
Wohooo,是來自同一用戶的同一個問題;) – PriteshJ 2012-07-18 18:26:07