Konvertierung von ZIP in tar.gz

Tar.gz ist das mit Abstand am weitesten verbreitete komprimierte Archivformat in der Linux-Welt, während ZIP das beliebteste für Windows ist. Wenn Sie ein ZIP-Archiv in tar.gz konvertieren möchten, lesen Sie diesen Artikel.

Konvertierung

Aspose.ZIP API bietet die Funktion saveGzipped, um ein Tar-Archiv im laufenden Betrieb zu komprimieren. Wir können einen Eintrag aus dem ZIP-Archiv in den Speicher extrahieren, ohne ihn in einem Zwischenspeicher zu speichern, und ihn sofort in das tar-Archiv einfügen.

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 Einträge aus dem ZIP-Archiv extrahiert und sofort in das tar.gz-Archiv übertragen werden. 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 (TarArchive tar = new TarArchive()) {
 3        for (ArchiveEntry entry : source.getEntries()) {
 4            if (!entry.isDirectory()) {
 5                ByteArrayOutputStream out = new ByteArrayOutputStream();
 6                try (InputStream mem = entry.open()) {
 7                    byte[] b = new byte[8192];
 8                    int bytesRead;
 9                    while (0 < (bytesRead = mem.read(b, 0, b.length))) {
10                        out.write(b, 0, bytesRead);
11                    }
12                }
13                tar.createEntry(entry.getName(), new ByteArrayInputStream(out.toByteArray()));
14            }
15        }
16        
17        tar.saveGzipped("result.tar.gz");
18    }
19} catch (IOException ex) {
20    System.out.println(ex);
21}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.