Konvertierung von ZIP in 7z
Wenn Sie ein ZIP-Archiv in das 7z-Format konvertieren möchten, lesen Sie diesen Artikel.
Aspose.Zip erlaubt nun das Zusammenstellen von 7z-Archiven mit den Kompressionsalgorithmen LZMA, LZMA2, PPMd und BZip2.
Umstellung
Aspose.ZIP API bietet die Klasse SevenZipArchive für die Arbeit mit 7z-Archiven. Wir können einen Eintrag in den Speicher extrahieren, ohne ihn in einem Zwischenspeicher zu speichern, und ihn direkt an das 7z-Archiv übergeben.
Stellen Sie sicher, dass Sie über genügend virtuellen Speicher verfügen, um den Inhalt aller Einträge zu speichern.
Eintrag übertragen
Das folgende Codebeispiel zeigt, wie man Einträge aus dem ZIP-Archiv extrahiert und sofort in das 7z-Archiv überträgt. 7z-Einträge werden mit der LZMA2-Methode komprimiert, unabhängig davon, welchen Algorithmus sie im Quellarchiv hatten. Einträge, die Verzeichnisse sind, werden übersprungen, aber ihre Dateien werden unter Berücksichtigung relativer Pfade hinzugefügt.
1try (Archive source = new Archive("source.zip")) {
2 try (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings()))) {
3 for (ArchiveEntry Eintrag : source.getEntries()) {
4 if (!entry.isDirectory()) {
5 try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
6 entry.extract(out);
7 try (ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray())) {
8 archive.createEntry(entry.getName(), in);
9 }
10 }
11 }
12 }
13 archive.save("result.7z");
14 }
15} catch (IOException ex) {
16}