Conversión de ZIP a tar.gz mediante C#
Tar.gz es, con diferencia, el formato de archivo comprimido más extendido en el mundo Linux, mientras que ZIP es el más popular para Windows. Si desea convertir un archivo ZIP a tar.gz, lea este artículo.
Conversión
API Aspose.ZIP proporciona el método SaveGzipped para comprimir un archivo tar sobre la marcha. Podemos extraer una entrada del archivo ZIP a la memoria sin guardarla en un almacenamiento intermedio y pasarla al archivo tar de inmediato.
Asegúrese de tener suficiente memoria virtual para guardar el contenido de todas las entradas.
Transferir una entrada
El siguiente ejemplo de código demuestra cómo extraer entradas del archivo ZIP e inmediatamente colocarlas en el archivo tar.gz. Las entradas que son directorios se omiten, pero sus archivos se agregan respetando rutas relativas.
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 }