Konvertieren von ZIP in tar.gz über C#
Tar.gz ist mit Abstand das 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 SaveGzipped-Methode, um ein TAR-Archiv im laufenden Betrieb zu komprimieren. Wir können einen Eintrag aus dem ZIP-Archiv in den Speicher extrahieren, ohne ihn im Zwischenspeicher zu speichern, und ihn sofort an das 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 dem ZIP-Archiv extrahiert und sofort im tar.gz-Archiv abgelegt werden. Einträge, bei denen es sich um Verzeichnisse handelt, werden übersprungen, ihre Dateien werden jedoch unter Berücksichtigung relativer Pfade hinzugefügt.
1 using (Archive source = new Archive("source.zip"))
2 {
3 using (TarArchive tar = new TarArchive())
4 {
5 foreach (ArchiveEntry entry in source.Entries)
6 {
7 if (!entry.IsDirectory)
8 {
9 MemoryStream mem = new MemoryStream();
10 entry.Open().CopyTo(mem);
11 tar.CreateEntry(entry.Name, mem);
12 }
13 }
14
15 tar.SaveGzipped("result.tar.gz");
16 }
17 }