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#.
- Carica l’archivio ZIP usando la classe Archive.
- Scorri le voci nella raccolta Archive.Entries.
- Filtra i file/cartelle desiderati e aggiungili a un elenco.
- Elimina ogni voce nell’elenco utilizzando il metodo Archive.DeleteEntry(ArchvieEntry).
- Salvare l’archivio ZIP aggiornato utilizzando il metodo Archive.Save(string).
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.
- Carica l’archivio ZIP usando la classe Archive.
- Eliminare il file specificando l’indice nel metodo Archive.DeleteEntry(int).
- Salvare l’archivio ZIP aggiornato utilizzando il metodo Archive.Save(string).
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.