Unisci più archivi ZIP o TAR in C#

Quando si lavora con gli archivi dalle applicazioni .NET, potrebbe essere necessario unire più file ZIP o TAR. Ad esempio, potresti voler estrarre file e cartelle da più archivi e inserirli in un unico archivio. Per ottenerlo, questo articolo spiega come unire più file ZIP o TAR in C#. Tratteremo la fusione di ZIP in ZIP, TAR in TAR, ZIP in TAR e TAR in ZIP.

API C# .NET per unire file ZIP e TAR

Per unire più archivi ZIP e TAR, utilizzeremo Aspose.ZIP for .NET. È un’API .NET ricca di funzionalità che consente di creare e manipolare vari formati di archivio popolari. Puoi scaricare la DLL dell’API o installarla direttamente utilizzando NuGet.

PM> Install-Package Aspose.Zip

Unisci più file ZIP in C#

Iniziamo il nostro viaggio nell’unione di archivi con il formato ZIP. Prenderemo due archivi ZIP e raccoglieremo le loro voci in un unico file ZIP. Di seguito sono riportati i passaggi per unire più file ZIP in C#.

L’esempio di codice seguente mostra come unire due file ZIP in C#.

// Carica l'archivio ZIP di origine
using (Archive sourceArchive = new Archive("Archives/SourceArchive.zip"))
{
    // Carica l'archivio ZIP di destinazione
    using (Archive destArchive = new Archive("Archives/DestinationArchive.zip"))
    {
        // Iterare sulle voci
        foreach (ArchiveEntry entry in sourceArchive.Entries)
        {
            // Check is entry non è una directory. Le voci che sono directory vengono saltate, ma i loro file vengono aggiunti rispettando i percorsi relativi.
            if (!entry.IsDirectory)
            {
                // Carica la voce nel flusso di memoria
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Aggiungi voce al CAP di destinazione
                destArchive.CreateEntry(entry.Name, mem);
            } 
        }

        // Salva l'archivio unito separatamente
        destArchive.Save("Archives/merged-archive.zip");
    }
}

Unisci più file TAR in C#

Vediamo ora come unire più archivi TAR in C#. Di seguito sono riportati i passaggi per raggiungere questo obiettivo.

L’esempio di codice seguente mostra come unire più file TAR in C#.

// Carica l'archivio TAR di origine
using (TarArchive sourceArchive = new TarArchive("Archives/SourceArchive.tar"))
{
    // Carica l'archivio TAR di destinazione
    using (TarArchive destArchive = new TarArchive("Archives/DestinationArchive.tar"))
    {
        // Iterare sulle voci
        foreach (TarEntry entry in sourceArchive.Entries)
        {
            // Check is entry non è una directory. Le voci che sono directory vengono saltate, ma i loro file vengono aggiunti rispettando i percorsi relativi.
            if (!entry.IsDirectory)
            {
                // Carica la voce nel flusso di memoria
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Aggiungi voce al TAR di destinazione
                destArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Salva l'archivio unito separatamente
        destArchive.Save("Archives/merged-archive.tar");
    }
}

Unisci ZIP in TAR in C#

In questa sezione vedremo come unire un file ZIP nell’archivio TAR in C#. Di seguito sono riportati i passaggi per eseguire questa operazione.

L’esempio di codice seguente mostra come unire un archivio ZIP in TAR.

// Carica l'archivio ZIP di origine
using (Archive zipArchive = new Archive("Archives/SourceArchive.zip"))
{
    // Carica l'archivio TAR di destinazione
    using (TarArchive tarArchive = new TarArchive("Archives/DestinationArchive.tar"))
    {
        // Iterare sulle voci
        foreach (ArchiveEntry entry in zipArchive.Entries)
        {
            // Check is entry non è una directory. Le voci che sono directory vengono saltate, ma i loro file vengono aggiunti rispettando i percorsi relativi.
            if (!entry.IsDirectory)
            {
                // Carica la voce nel flusso di memoria
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Aggiungi voce al TAR di destinazione
                tarArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Salva l'archivio unito separatamente
        tarArchive.Save("Archives/merged-archive.tar");
    }
}

Combina TAR con ZIP in C#

Simile all’esempio precedente, puoi unire un file TAR in ZIP. L’esempio di codice seguente mostra come estrarre file da un TAR e unirli in un ZIP.

// Carica archivio TAR
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
    // Carica archivio ZIP
    using (Archive zipArchive = new Archive("Archives/DestinationArchive.zip"))
    {
        // Iterare sulle voci
        foreach (TarEntry entry in tarArchive.Entries)
        {
            // Check is entry non è una directory. Le voci che sono directory vengono saltate, ma i loro file vengono aggiunti rispettando i percorsi relativi.
            if (!entry.IsDirectory)
            {
                // Carica la voce nel flusso di memoria
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Aggiungi voce a ZIP
                zipArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Salva l'archivio unito separatamente
        zipArchive.Save("Archives/merged-archive.zip");
    }
}

Ottieni una licenza API gratuita

Puoi utilizzare Aspose.ZIP per .NET senza limitazioni di valutazione ottenendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come unire più archivi ZIP o TAR a livello di codice in C#. In particolare, abbiamo spiegato come unire in modo dinamico file ZIP, file TAR, ZIP in TAR e TAR in ZIP. Per saperne di più su Aspose.ZIP per .NET, puoi visitare la documentazione. Inoltre, puoi inviare le tue domande al nostro forum.

Guarda anche