TAR.GZ-Archive werden in C# zusammengeführt
Wenn Sie eine beliebige Anzahl von Tar.gz-Archiven in einem einzigen Archiv kombinieren möchten, lesen Sie diesen Artikel.
Beschreibung
Die Aspose.ZIP API bietet die Klasse „ TarArchive“ zum Extrahieren und Erstellen von Tar-Archiven mit oder ohne Komprimierung. Wir können ein Archiv in den Speicher extrahieren, ohne es im Zwischenspeicher zu speichern, und seine Einträge sofort an das kombinierte Tar-Archiv übergeben.
Stellen Sie sicher, dass Sie über genügend virtuellen Speicher verfügen, um den Inhalt aller Einträge zu behalten.
Einen Eintrag übertragen
Das folgende Codebeispiel zeigt, wie Einträge aus mehreren Tar.gz-Archiven extrahiert und sofort im Tar-Archiv abgelegt werden. Wir komprimieren es mit der Methode SaveGzipped auf gz im Speicher.
1 string[] archivesPaths = new string[] { "data/first.tar.gz",
2 "data/second.tar.gz", "data/third.tar.gz" };
3 TarArchive[] archives = new TarArchive[archivesPaths.Length];
4
5 using (TarArchive mergred = new TarArchive())
6 {
7 for (int i = 0; i < archivesPaths.Length; i++)
8 {
9 TarArchive a = TarArchive.FromGZip(archivesPaths[i]);
10 archives[i] = a;
11 foreach (TarEntry entry in a.Entries)
12 mergred.CreateEntry(entry.Name, entry.Open());
13 }
14
15 mergred.SaveGzipped("merged.tar.gz");
16
17 for (int i = 0; i < archivesPaths.Length; i++)
18 {
19 archives[i].Dispose();
20 }
21 }
Ähnlicher Ansatz für andere Archive
Sie können den gleichen Ansatz verwenden, um tar.lz, tar.xz, tar.z zu kombinieren.