Frage

Ich habe ein Ruby -Programm, das einen Verzeichnisbaum von XML -Dateien mit dem verschnulzt Rubyzip Juwel. Mein Problem ist, dass die Datei anfängt, schwer zu sein, und ich möchte den Kompressionsniveau erhöhen, da die Kompressionszeit kein Problem ist.

Ich konnte in der nicht finden Rubyzip -Dokumentation Eine Möglichkeit, die Komprimierungsstufe für die erstellte ZIP -Datei anzugeben.

Weiß jemand, wie man diese Einstellung ändert? Gibt es eine andere Ruby -Bibliothek, mit der die Komprimierungsstufe angegeben werden kann?

War es hilfreich?

Lösung

Hier ist der Code, den ich mit Rubyzip Internal erstellt habe.

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

Andere Tipps

Sie werden wahrscheinlich eine bessere Traktion bekommen, indem Sie zum "Zip" -Programm aufrufen oder nicht das Reißverschluss machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top