Create a Flat ZIP Archive in C#

Introduzione

Gestione dei file ZIP può essere sfidante, specialmente quando contengono archivi nested. Questa guida vi guiderà attraverso il processo di flattening strutture ZIP estrarendo tutti i archivi ZIP interni in un unico archivio utilizzando Aspose.ZIP per .NET.

Perché creare un ZIP?

Creare un file ZIP piatto offre diversi vantaggi:

  • Simplifica la gestione dei file ZIP: riduce la complessità nel gestire più file.
  • Estratta tutti i contenuti ZIP nestati in un unico archivio: Consolida i file per un accesso più semplice.
  • Riduce le strutture di cartella redundanti: Streamline l’organizzazione dei file.

Tabella dei contenuti

Setting Up ZIP Archive Processing in C#

Per elaborare in modo efficace archivi ZIP installati, utilizzeremo Aspose.ZIP per .NET. Questa potente biblioteca fornisce:

  • L’estrazione automatica e la ricompressione ZIP.
  • Supporto per diversi formati di archivio: ZIP, TAR, GZip e altro ancora.
  • L’efficiente elaborazione di grandi archivi.

Installazione

È possibile installare facilmente la biblioteca tramite NuGet:

PM> Install-Package Aspose.Zip

In alternativa, è possibile scaricare il DLL dal Scarica la pagina.

Passaggi per creare un Flat ZIP Archive

Consideriamo la seguente struttura nested ZIP:

parent.zip
 ├ first.txt
 ├ inner.zip
 │ ├ file1.exe
 │ └ data.bin
 └ picture.gif

Dopo il flattamento, tutti i contenuti ZIP interni saranno consolidati nel ZIP madre:

flattened.zip
 ├ first.txt
 ├ picture.gif
 ├ file1.exe
 └ data.bin

Esempio di codice

Ecco come puoi automatizzare l’estrazione dei file ZIP nascosti:

// Load the parent ZIP file
using (Archive parentZip = new Archive("parent.zip"))
{
    List<ArchiveEntry> toDelete = new List<ArchiveEntry>();
    List<string> newEntryNames = new List<string>();
    List<MemoryStream> newStreams = new List<MemoryStream>();

    foreach (ArchiveEntry entry in parentZip.Entries)
    {
        if (entry.Name.EndsWith(".zip", StringComparison.OrdinalIgnoreCase))
        {
            toDelete.Add(entry);
            using (MemoryStream zipStream = new MemoryStream())
            {
                entry.Open().CopyTo(zipStream);
                zipStream.Position = 0;
                using (Archive innerZip = new Archive(zipStream))
                {
                    foreach (ArchiveEntry innerEntry in innerZip.Entries)
                    {
                        using (MemoryStream entryStream = new MemoryStream())
                        {
                            innerEntry.Open().CopyTo(entryStream);
                            newEntryNames.Add(innerEntry.Name);
                            newStreams.Add(entryStream);
                        }
                    }
                }
            }
        }
    }

    foreach (var entry in toDelete)
        parentZip.DeleteEntry(entry);

    for (int i = 0; i < newEntryNames.Count; i++)
        parentZip.CreateEntry(newEntryNames[i], newStreams[i]);

    parentZip.Save("flattened.zip");
}

Questo metodo automatizza efficacemente l’estrazione dei file ZIP, garantendo un flusso di lavoro flessibile con le funzionalità C# Archive.

Salva il file ZIP Flattened

Una volta che hai estratto i contenuti ZIP nestati, salvare il file ZIP flattato utilizzando la seguente riga di codice:

parentZip.Save("flattened.zip");

Questo ti assicura di avere un archivio ZIP unico senza cartelle nestate, rendendo la gestione dei file molto più facile attraverso C# Zip Compression tecniche.

Batch Processing Multiple ZIP Archivi

Se hai bisogno di flatte più archivi ZIP situati in una specifica cartella, puoi utilizzare il seguente taglio di codice:

string[] files = Directory.GetFiles("zip_folder", "*.zip");
foreach (string file in files)
{
    using (Archive archive = new Archive(file))
    {
        archive.ExtractToDirectory("output_folder");
    }
}

Questo metodo consente di automatizzare il processamento ZIP in massa, risparmiando tempo e sforzo mentre gestisce efficacemente i file C# Zip.

Ottenere una licenza API gratuita

Per disattivare le funzioni complete di Aspose.ZIP, è possibile richiedere una gratuita licenza temporanea.

Per una documentazione completa, visita il Aspose.ZIP Guide ** . Se avete domande, siate liberi di partecipare alla comunità sul ** Forum di Aspose .

Conclusione e risorse aggiuntive

Il riassunto

In questa guida abbiamo coperto:

  • Come flattare i file ZIP in C#
  • L’estratto di archivi ZIP nested
  • Salva l’ultimo archivio ZIP
  • Processare più file ZIP contemporaneamente

Con Aspose.ZIP per .NET, puoi estrarre e gestire in modo efficiente i file ZIP nelle tue applicazioni.

Risorse aggiuntive

Per gli sviluppatori che cercano di migliorare la loro comprensione, considerare questi argomenti:

  • C# Create Zip Archive: Scopri diversi metodi per creare file ZIP nelle tue applicazioni C#.
  • Create ZIP File C# .NET Core: Concentrati su .net Core, imparare le migliori pratiche per la creazione di file Zip.
  • C# Extract File from ZIP: istruzioni passo dopo passo sull’estrazione di file specifici da archivi Zip.
  • C# Decompress ZIP: una guida dettagliata sulla decompressione dei file Zip utilizzando C#.
  • Come Zip File in .NET con C#: Una passeggiata completa sui file di zipping utilizzando .Net e C#.
  • C# ZipArchive Extract to Directory: Scopri come utilizzare il file per l’estrazione efficiente.
  • C# Zipping File: esplora i metodi per zipping file in C# per migliorare le prestazioni e la comodità.
  • .NET Core Create Zip File: un’occhiata dettagliata alla creazione di file ZIP utilizzando .NET core e C#.
  • C# Zip: imparare a gestire i file ZIP in modo efficace in C#.
  • C# Zip Example: Visualizza esempi pratici di file di zipping in C# per semplificare il processo di sviluppo.
  • .NET Core Zip: Migliori pratiche per lavorare con i file ZIP nelle applicazioni core .NET.
  • C# Open ZIP: capisci come aprire e leggere i file Zip in modo efficace.
  • C# Leggi File da ZIP: Tecniche per la lettura di file specifici memorizzati negli archivi Zip.
  • C# Zip Lists: Scopri come zip le liste dei file senza segni nelle tue applicazioni.
  • C# Zipping File: un’occhiata più approfondita ai metodi per zipping file.
  • .NET Core Zip: Inserisci la gestione dei file .net Core.
  • C# Archive: imparare a sfruttare la classe Archivio per una gestione ZIP completa.

More in this category