Elimina file in un archivio ZIP in C# .NET

Mentre si lavora con gli archivi dalle applicazioni .NET, potrebbe essere necessario manipolare i file all’interno di un ZIP. Nel post precedente, hai visto come aggiungere file/cartelle in un archivio ZIP. In questo articolo imparerai come eliminare i file all’interno degli archivi ZIP a livello di codice in C#. Quindi iniziamo.

API C# .NET per eliminare i file all’interno degli archivi ZIP

Aspose.ZIP for .NET è una potente API che fornisce un’ampia gamma di funzionalità di archiviazione. Ti consente di creare e manipolare archivi di formati popolari tra cui ZIP, TAR, 7z e GZip. Utilizzeremo questa API per eliminare dinamicamente i file all’interno degli archivi ZIP. È possibile installare l’API da NuGet o scaricare la DLL e farvi riferimento manualmente.

PM> Install-Package Aspose.Zip 

Elimina i file all’interno degli archivi ZIP in C#

Esistono due modi per eliminare i file all’interno di un archivio ZIP utilizzando Aspose.ZIP per .NET. Uno sta usando l’indice del file mentre l’altro sta usando la classe ArchiveEntry. Vediamo come utilizzare entrambi i metodi sopra menzionati.

Elimina un file in ZIP utilizzando ArchiveEntry

Aspose.ZIP per .NET rappresenta ogni file/cartella all’interno di uno ZIP come un oggetto ArchiveEntry e tutti i file e le cartelle formano una raccolta di oggetti ArchiveEntry. Pertanto, per eliminare un file da ZIP, è possibile accedere ed eliminare l’oggetto ArchiveEntry pertinente dalla raccolta. Di seguito sono riportati i passaggi per eliminare un file da un archivio ZIP in C#.

L’esempio di codice seguente mostra come eliminare i file all’interno di un archivio ZIP in C#.

// Carica l'archivio ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
    // Elenco per conservare i file da eliminare
    List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();

    // Scorri le voci ZIP
    foreach(ArchiveEntry entry in archive.Entries)
    {
        // Aggiungi file/cartella nell'elenco
        if(entry.Name.ToLower().Contains("source"))
        {
            entriesToDelete.Add(entry);
        }
    } 

    // Elimina tutte le voci elencate
    foreach(var entry in entriesToDelete)
    {
        archive.DeleteEntry(entry);
    }

    // Salva archivio aggiornato
    archive.Save("Archives/updated-archive.zip");
}

Elimina un file in ZIP usando Indice

Puoi anche eliminare le voci ZIP utilizzando il loro indice. Di seguito sono riportati i passaggi per rimuovere un file/una cartella da un archivio ZIP utilizzando il suo indice.

L’esempio di codice C# seguente mostra come rimuovere un file in un archivio ZIP usando il relativo indice.

// Carica l'archivio ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
    // Elimina il file in base al suo indice
    archive.DeleteEntry(0);

    // Salva archivio aggiornato
    archive.Save("Archives/updated-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 eliminare i file dagli archivi ZIP in C#. Con l’aiuto di esempi di codice, abbiamo visto come eliminare i file utilizzando la classe ArchiveEntry o l’indice. Nel caso in cui desideri saperne di più su Aspose.ZIP per .NET, puoi visitare la documentazione. Inoltre, puoi porre le tue domande tramite il nostro forum.

Guarda anche