5

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

我在ruby​​zip 文档中找不到为创建的 ZIP 文件指定压缩级别的方法。

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

4

2 回答 2

8

这是我通过查看 ruby​​zip 内部创建的代码。

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
于 2010-04-27T15:17:21.903 回答
0

通过调用“zip”程序或不进行压缩的方法,您可能会获得更好的牵引力。

于 2010-03-18T16:24:25.717 回答