Spesso ci imbattiamo in uno scenario in cui più archivi ZIP sono incapsulati all’interno di un altro ZIP. In questi casi, devi prima estrarre lo ZIP genitore e poi gli archivi nidificati uno per uno. Per semplificarti le cose, in questo articolo dimostreremo come estrarre gli archivi ZIP nidificati in C# .NET senza scrivere codice complesso.

API C# .NET per estrarre archivi ZIP nidificati

Per decomprimere gli archivi ZIP annidati, utilizzeremo Aspose.ZIP for .NET. L’API è progettata per eseguire operazioni di archiviazione dall’interno delle applicazioni .NET. Ti consente di creare e manipolare i formati di archivio più diffusi senza problemi. Puoi scaricare la DLL dell’API o installarla utilizzando NuGet.

PM> Install-Package Aspose.Zip

Estrai archivi ZIP nidificati in C#

Per dimostrare l’estrazione di archivi ZIP nidificati, abbiamo creato il seguente file ZIP che contiene 3 voci.

Archivi ZIP nidificati

Archivi ZIP nidificati

Estrarremo ogni archivio ZIP nidificato e ne salveremo il contenuto in una cartella separata. Di seguito sono riportati i passaggi per estrarre archivi ZIP nidificati in C#.

L’esempio di codice seguente mostra come decomprimere gli archivi ZIP nidificati in C# .NET.

// Apri il file ZIP in un flusso di file
using (FileStream zipFile = File.Open("Archives/nested-archive.zip", FileMode.Open))
{
    // Carica il file ZIP usando la classe Archive
    using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
    {
        // Accedi a ogni voce nell'archivio ZIP
        foreach(ArchiveEntry entry in archive.Entries)
        {
            if(entry.Name.ToLower().Contains(".zip"))
            {
                // Crea flusso di memoria per l'archivio nidificato
                MemoryStream nestedArchiveStream = new MemoryStream();

                // Copia l'archivio nel flusso di memoria
                entry.Open().CopyTo(nestedArchiveStream);

                // Carica l'archivio nidificato dal flusso di memoria
                using (var nestedArchive = new Archive(nestedArchiveStream))
                {
                    // Estrai l'archivio su disco.
                    nestedArchive.ExtractToDirectory("Archives/Extracted/"+entry.Name);
                }                               

            }

        } 
    }
}

Quello che segue è lo screenshot degli archivi ZIP estratti.

Estrazione di archivi ZIP nidificati in C# .NET

Archivi nidificati decompressi

Ottieni una licenza API gratuita

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

Conclusione

In questo articolo, hai imparato come estrarre archivi ZIP nidificati in C#. La guida dettagliata e l’esempio di codice hanno dimostrato come decomprimere ogni archivio nidificato in una cartella separata. Inoltre, puoi visitare la documentazione per esplorare altre funzionalità di Aspose.ZIP per .NET. Inoltre, puoi porre le tue domande tramite il nostro forum.

Guarda anche