Dekomprimieren Sie ein 7zip -Archiv mit mehreren Dateien und Verzeichnissen in Java [geschlossen

StackOverflow https://stackoverflow.com/questions/3469904

  •  28-09-2019
  •  | 
  •  

Frage

Ich möchte ein 7zip/lzma -Archiv mit mehreren Dateien und Verzeichnissen in Java dekomprimieren. Ich habe versucht, das offizielle 7zip SDK zu verwenden, aber ich habe versagt, da meine Programmierfähigkeiten für dieses Thema nicht so fortgeschritten sind. Ich fache jedoch einige Bibliotheken, die die Unterstützung in Java erleichtern und von LzmaoutputStream/LzmainputStream sprechen. Ich weiß jedoch nicht, wie man diese "Streams" verwendet, um ein Multi -File -Archiv zu dekomprimieren. Ich stecke fest.

War es hilfreich?

Lösung

Im Beispiel ersetzen Sie im Beispiel compressed mit neuer Datei ("path_to_file"). Der Beispielcode ergibt einen Ausgabestrom, ich nehme an, der LzmaOutputStream oder die Bibliothek verfügt über geeignete Methoden zum Konvertieren des Streams in Binär- oder String.

Standardmäßig ist LZMA nur ein Komprimierungsalgorithmus, kein Datei -Archiver wie Teer oder Reißverschluss. (Hinweis: Das 7-Zip-Programm ist ein Datei-Archiver, aber die Bibliothek, mit der Sie verknüpft sind, unterstützt die Datei Traversal und Entpackung nicht.

Ich würde empfehlen, einen gut-delzidleren Komprimierungsalgorithmus wie Zip oder GZ zu verwenden. Wenn Sie LZMA verwenden müssen, können Sie TAR verwenden, um ein Dateiarchiv zu erstellen und es dann mit LZMA zu komprimieren. Oder verwenden Sie Reißverschluss mit Null -Komprimierung.

Hier ist ein Java Tar Library.

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