Modificare i file Zip con Aspose.Zip per .NET

Introduzione

file zip sono essenziali per l’organizzazione e la compressione dei dati, ma come si modificano i loro contenuti a livello di programmazione? La soluzione risiede in Aspose.Zip per .NET, una libreria robusta che semplifica la manipolazione dei file zip con C#. In questo tutorial, ti guideremo passo dopo passo nell’estrazione, nell’eliminazione e nell’aggiunta di voci ai file zip.

Prerequisiti

Prima di iniziare, assicurati di avere quanto segue:

  1. Aspose.Zip per la libreria .NET: installa la libreria nel tuo progetto. Puoi scaricarlaQui.

  2. Directory dei documenti: imposta una directory in cui archiviare i tuoi file zip. Sostituisci"Your Document Directory" nel codice con il tuo percorso effettivo.

Importa gli spazi dei nomi necessari

Iniziamo importando gli spazi dei nomi richiesti:

using Aspose.Zip;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

Passaggio 1: aprire il file ZIP esterno

Inizia aprendo il file zip principale (zip esterno):

string dataDir = "Your Data Directory";
using (Archive outer = new Archive(dataDir + "outer.zip"))
{
    // Procedere all'identificazione delle entrate zip interne
}

Passaggio 2: identificare le entrate Zip interne

Successivamente, identifica e preparati a eliminare tutti i file zip interni:

List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();
List<string> namesToInsert = new List<string>();
List<MemoryStream> contentToInsert = new List<MemoryStream>();

foreach (ArchiveEntry entry in outer.Entries)
{
    if (entry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase))
    {
        entriesToDelete.Add(entry);
        
        using (MemoryStream innerCompressed = new MemoryStream())
        {
            entry.Open().CopyTo(innerCompressed);
            
            // Estrarre voci interne
            using (Archive inner = new Archive(innerCompressed))
            {
                foreach (ArchiveEntry ie in inner.Entries)
                {
                    namesToInsert.Add(ie.Name);
                    MemoryStream content = new MemoryStream();
                    ie.Open().CopyTo(content);
                    contentToInsert.Add(content);
                }
            }
        }
    }
}

Passaggio 3: Elimina le voci dell’archivio interno

Una volta raccolte le voci necessarie, elimina le voci zip interne:

foreach (ArchiveEntry e in entriesToDelete)
{
    outer.DeleteEntry(e);
}

Passaggio 4: aggiungere voci modificate al codice zip esterno

Ora puoi aggiungere nuovamente le voci appena estratte al tuo file zip esterno:

for (int i = 0; i < namesToInsert.Count; i++)
{
    outer.CreateEntry(namesToInsert[i], contentToInsert[i]);
}

Passaggio 5: salvare il file ZIP modificato

Infine, salva le modifiche in un nuovo file zip:

outer.Save(dataDir + "flatten.zip");

Conclusione

Aspose.Zip per .NET fornisce un modo potente e diretto per manipolare i file zip a livello di programmazione. Questo tutorial ha trattato l’estrazione, l’eliminazione e l’aggiunta di voci a un file zip, illustrando la versatilità della libreria. Esplora diversi scenari e migliora le tue capacità di manipolazione dei file!

Domande frequenti

Posso usare Aspose.Zip per .NET con altri linguaggi di programmazione?

Aspose.Zip è progettato principalmente per le applicazioni .NET, ma Aspose offre librerie simili per vari linguaggi di programmazione.

È disponibile una prova gratuita per Aspose.Zip per .NET?

Sì, è disponibile una prova gratuita per il downloadQui.

Come posso ottenere supporto per Aspose.Zip per .NET?

Visita ilForum di Aspose.Zip per supporto e discussioni.

Posso acquistare una licenza temporanea per Aspose.Zip per .NET?

Sì, puoi ottenere una licenza temporaneaQui.

Dove posso trovare la documentazione per Aspose.Zip per .NET?

La documentazione completa è disponibileQui.