Уровень сжатия набора при генерации использования zip-файла RubyZip

У меня есть программа Ruby, которая архивирует дерево каталогов XML-файлов с помощью rubyzip драгоценного камня. Моя проблема состоит в том, что файл начинает быть тяжелым, и я хотел бы увеличить уровень сжатия, так как время сжатия не является проблемой.

Я не мог найти в rubyzip документации способ указать уровень сжатия для созданного zip-файла.

Кто-либо знает, как изменить эти настройки? Есть ли другая библиотека Ruby, которая позволяет указывать уровень сжатия?

5
задан divibisan 6 September 2018 в 22:47
поделиться

2 ответа

Вот код, который я создал, просмотрев внутренний файл 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
8
ответ дан 14 December 2019 в 04:35
поделиться

вы, вероятно, добьетесь большего, обратившись к программе 'zip' или к тому, что не делает застегивание.

0
ответ дан 14 December 2019 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: