
Quando si tratta di archivi ZIP, potresti trovarti in una situazione in cui un file ZIP contiene altri file ZIP, portando a una struttura annidata. Se il tuo obiettivo è semplificare questo estraendo tutti gli archivi ZIP interni nell’archivio esterno, sei nel posto giusto. In questo articolo, esploreremo come creare un archivio ZIP piatto in C# utilizzando il potente Aspose.ZIP per .NET.
Indice
- Panoramica dell’API .NET per Creare Archivi ZIP Piatto
- Passaggi per Creare un Archivio ZIP Piatto
- Ottieni una Licenza API Gratuita
- Conclusione
- Vedi Anche
Panoramica dell’API .NET per Creare Archivi ZIP Piatto
Per creare archivi ZIP piatti, utilizzeremo la libreria Aspose.ZIP per .NET. Questa robusta API di archiviazione ti consente di creare ed estrarre vari formati di archivio, inclusi ZIP, TAR, GZip e 7z. Puoi facilmente installare questa libreria da NuGet o scaricare il suo DLL dalla sezione download.
PM> Install-Package Aspose.Zip
Passaggi per Creare un Archivio ZIP Piatto in C#
Per comprendere meglio la struttura di un archivio ZIP piatto, considera il seguente esempio. Inizialmente, abbiamo un archivio ZIP che contiene un altro archivio ZIP:
parent.zip
├ first.txt
├ inner.zip
│ ├ game.exe
│ └ subitem.bin
└ picture.gif
Dopo aver trasformato questo archivio ZIP in una struttura piatta, tutte le voci dall’archivio ZIP interno saranno estratte nell’archivio ZIP genitore, portando alla seguente struttura:
flatten.zip
├ first.txt
├ picture.gif
├ game.exe
└ subitem.bin
Passaggi di Implementazione
Ecco come creare programmaticamente un archivio ZIP piatto in C#:
- Carica l’Archivio ZIP Genitore: Usa la classe Archive per caricare l’archivio ZIP genitore.
- Inizializza Liste: Crea liste per memorizzare:
- Voci da eliminare dall’archivio ZIP genitore
- Voci estratte e i loro nomi
- Itera Attraverso le Voci dell’Archivio: Scorri ogni ArchiveEntry nell’archivio ZIP genitore utilizzando la collezione Archive.Entries.
- Elabora Ogni Voce:
- Controlla se la voce è un archivio ZIP usando
ArchiveEntry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase)
. - Se lo è, aggiungila alla lista delle voci da eliminare.
- Apri la voce in un oggetto MemoryStream usando
ArchiveEntry.Open().CopyTo(MemoryStream)
. - Itera attraverso le voci dell’archivio ZIP interno, eseguendo le seguenti operazioni:
- Aggiungi il nome di ogni voce alla lista delle voci da aggiungere.
- Carica ogni voce in un
MemoryStream
usandoArchiveEntry.Open().CopyTo(MemoryStream)
. - Aggiungi la voce alla lista delle voci da aggiungere all’archivio ZIP genitore.
- Controlla se la voce è un archivio ZIP usando
- Elimina le Voci ZIP Interne: Scorri la lista degli archivi ZIP interni ed elimina ogni voce usando il metodo Archive.DeleteEntry(ArchiveEntry).
- Aggiungi Nuove Voci all’Archivio ZIP Genitore: Scorri la lista delle voci da aggiungere e includi ogni voce usando il metodo Archive.CreateEntry(String, Stream).
- Salva l’Archivio ZIP Genitore: Infine, salva l’archivio ZIP genitore modificato usando il metodo Archive.Save(String).
Ecco un esempio di codice che dimostra come creare un archivio ZIP piatto in C#:
Ottieni una Licenza API Gratuita
Puoi ottenere una licenza temporanea gratuita per utilizzare Aspose.ZIP per .NET senza limitazioni di valutazione.
Conclusione
In questo tutorial, hai imparato come creare efficientemente un archivio ZIP piatto utilizzando C#. Abbiamo dimostrato il processo di estrazione degli archivi ZIP interni nell’archivio ZIP genitore, evitando efficacemente cartelle annidate. Per ulteriori informazioni, sentiti libero di controllare la documentazione di Aspose.ZIP per .NET, o contattaci tramite il nostro forum.
Vedi Anche
- Aggiungi File o Cartelle agli Archivi ZIP in C#
- Estrai File negli Archivi ZIP utilizzando C#
- Unisci Più Archivi ZIP o TAR in C#
- Crea un Archivio Auto-estraente Eseguibile in C#
Seguendo questi passaggi, puoi facilmente implementare la compressione di file zip piatti in C# nelle tue applicazioni, garantendo un archivio zip a file singolo che è sia efficiente che facile da gestire.