比比會爲這方面的工作。可能有更酷的方法來做到這一點,但由於基本上沒有文檔,這裏是我想出了用Rappyfile遞歸複製Zippy目錄的方法。這Rake文件是在Rails環境中使用,所以我把寶石的要求在我的Gemfile:
#Gemfile
source 'http://rubygems.org'
gem 'rails'
gem 'zippy'
這是Rake文件
#Rakefile
def add_file(zippyfile, dst_dir, f)
zippyfile["#{dst_dir}/#{f}"] = File.open(f)
end
def add_dir(zippyfile, dst_dir, d)
glob = "#{d}/**/*"
FileList.new(glob).each { |f|
if (File.file?(f))
add_file zippyfile, dst_dir, f
end
}
end
task :myzip do
Zippy.create 'my.zip' do |z|
add_dir z, 'my', 'app'
add_dir z, 'my', 'config'
#...
add_file z, 'my', 'config.ru'
add_file z, 'my', 'Gemfile'
#...
end
end
現在我可以這樣使用它:
C:\> cd my
C:\my> rake myzip
,它將生成my.zip
,其中包含一個名爲'my'的內部目錄以及所選文件和目錄的副本。
找到zipruby的好工作,拯救了我的一天! – 2011-05-20 09:23:05