Zusammenführen einer beliebigen Anzahl von Tar.gz-Archiven
Wenn Sie eine beliebige Anzahl von Tar.gz-Archiven zu einem einzigen Archiv zusammenführen wollen, lesen Sie diesen Artikel.
Beschreibung
Aspose.ZIP API bietet die Klasse TarArchive zum Extrahieren und Zusammenstellen von Tar-Archiven, mit oder ohne Kompression. Wir können ein Archiv in den Speicher extrahieren, ohne es in einem Zwischenspeicher zu speichern, und seine Einträge sofort an ein kombiniertes Tar-Archiv übergeben.
Stellen Sie sicher, dass Sie genügend virtuellen Speicher haben, um den Inhalt aller Einträge zu speichern.
Eintrag übertragen
Das folgende Codebeispiel demonstriert, wie man Einträge aus mehreren Tar.gz-Archiven extrahiert und sofort in ein tar-Archiv überträgt. Wir komprimieren sie im Speicher mit der Methode saveGzipped zu gz.
1String[] archivesPaths = new String[] { "data/first.tar.gz", "data/second.tar.gz", "data/third.tar.gz" };
2TarArchive[] archives = new TarArchive[archivesPaths.length];
3try (TarArchiv zusammengeführt = new TarArchiv()) {
4 for (int i = 0; i < archivesPaths.length; i++) {
5 TarArchive a = TarArchive.fromGZip(archivesPaths[i]);
6 archives[i] = a;
7 for (TarEntry Eintrag : a.getEntries()) {
8 merged.createEntry(entry.getName(), entry.open());
9 }
10 }
11
12 merged.saveGzipped("merged.tar.gz");
13
14 for (int i = 0; i < archivesPaths.length; i++) {
15 archives[i].close();
16 }
17}
Ähnlicher Ansatz für andere Archive
Sie können den gleichen Ansatz verwenden, um tar.lz, tar.xz zu kombinieren.