我使用RubyZip嘗試壓縮目錄中的所有文件。這裏是我的類:壓縮目錄中的所有文件
require 'zip/zip'
require 'zip/zipfilesystem'
class Lesson < ActiveRecord::Base
attr_accessible :attachment, :course_id, :goal, :title, :assets_attributes
belongs_to :course
has_many :assets, :dependent => :destroy
accepts_nested_attributes_for :assets, :reject_if => lambda { |a| a[:asset_file_name].blank? }
def bundle
bundle_filename = "public/attachments/#{self.id}/#{self.id}.zip"
Zip::ZipFile.open(bundle_filename, Zip::ZipFile::CREATE) {
|zipfile|
Dir.foreach("public/attachments/#{self.id}") do |item|
zipfile.add(item, "public/attachments/")
end
}
File.chmod(0644, bundle_filename)
self.save
end
end
目前,這一情況與我想要的名字一個壓縮文件,但在目錄中的文件沒有被正確地拉上。他們不會被壓縮爲文件,而是作爲目錄。
你能否提供更多的細節:你的預期產出是什麼,你究竟得到了什麼? *「...被壓縮爲文件但是作爲目錄...」*可以通過幾種方式解釋,因此請澄清。 – 2012-07-17 15:17:41