使用RubyZip生成ZIP文件时设置压缩级别

时间:2010-03-18 16:09:31

标签: ruby compression rubyzip

我有一个Ruby程序,它使用rubyzip gem来压缩XML文件的目录树。我的问题是文件开始很重,我想提高压缩级别,因为压缩时间不是问题。

我无法在rubyzip documentation中找到为创建的ZIP文件指定压缩级别的方法。

任何人都知道如何更改此设置?是否有另一个允许指定压缩级别的Ruby库?

2 个答案:

答案 0 :(得分:8)

这是我通过查看rubyzip内部创建的代码。

level = Zlib::BEST_COMPRESSION
Zip::ZipOutputStream.open(zip_file) do |zip|
    Dir.glob("**/*") do |filename|
        entry = Zip::ZipEntry.new("", filename)
        entry.gather_fileinfo_from_srcpath(filename)
        zip.put_next_entry(entry, nil, nil, Zip::ZipEntry::DEFLATED, level)
        entry.get_input_stream { |is| IOExtras.copy_stream(zip, is) }
    end
end

答案 1 :(得分:0)

你可能会通过打电话给'拉链'程序或不做拉链计划来获得更好的牵引力。