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.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.