Archivos TAR.GZ fusionándose en C#

Si desea combinar números arbitrarios de archivos Tar.gz en un solo archivo, lea este artículo.

Descripción

La API Aspose.ZIP proporciona la clase  TarArchive para extraer y componer archivos Tar, con o sin compresión. Podemos extraer un archivo a la memoria sin guardarlo en un almacenamiento intermedio y pasar sus entradas al archivo Tar combinado 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 de varios archivos Tar.gz e inmediatamente colocarlas en un archivo tar. Lo comprimimos a gz en la memoria usando el método SaveGzipped.

 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    }

Enfoque similar para otros archivos

Puede utilizar el mismo enfoque para combinar tar.lz, tar.xz, tar.z.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.