Come creare un file ZIP in memoria in C#

Come creare un file ZIP in memoria in C#

In questo tutorial passo dopo passo, imparerai come creare un file ZIP in memoria utilizzando C#. Il processo qui elencato ti consente di comprimere i file e le cartelle in un formato ZIP senza bisogno di creare un file fisico sul disco.

I vantaggi della creazione di file ZIP in memoria

  • Il risultato:- Evita il disco I/O, rendendo il processo più veloce.

  • Storaggio temporaneo:- Inserisci i file nella memoria per l’accesso rapido e il trattamento.

  • La flessibilità:- Facilita le operazioni come l’invio di file attraverso una rete senza archiviazione intermedia.

Prerequisiti: preparare l’ambiente

  • Inserisci Visual Studio o qualsiasi compatibile .NET IDE.
  • Installare Aspose.ZIP dal NuGet Package Manager.

Guida passo dopo passo per creare file ZIP in memoria

Passo 1: Installare Aspose.ZIP

Iniziate aggiungendo la libreria Aspose.ZIP al vostro progetto.

Install-Package Aspose.ZIP

Passo 2: Inserisci il nome

Aggiungi il Aspose.Zip Nome spazio al tuo codice per utilizzare le sue funzionalità.

using Aspose.Zip;

Passo 3: Caricare i file dal disco

Retrate i percorsi di file dalla cartella sorgente in una sequenza di stringhe.

string[] filesArray = Directory.GetFiles("YourFolderPath", "*.*", SearchOption.TopDirectoryOnly);

Passo 4: Creare un oggetto di archivio

Improvvisamente un Archive l’oggetto nella memoria per tenere le entrate ZIP.

using (MemoryStream zipFileInMemory = new MemoryStream())
{
    using (Archive zipArchive = new Archive())
    {
        // Further processing follows here
    }
}

Passo 5: Creare gli archivi

Passare attraverso il file array e creare un ArchiveEntry per ogni file.

foreach (string fileDiskPath in filesArray)
{
    string fileName = Path.GetFileName(fileDiskPath);
    zipArchive.CreateEntry(fileName, fileDiskPath);
}

Passo 6: Salva il file ZIP in memoria

Creare l’archivio ZIP nella memoria salvatelo al MemoryStream.

zipArchive.Save(zipFileInMemory);

Esempio di codice completo per creare un file ZIP in memoria

Ecco il codice completo che illustra come creare un file ZIP nella memoria:

// Create a MemoryStream instance for the ZIP file
using (MemoryStream zipFileInMemory = new MemoryStream())
{
    // Create an empty Archive object for ZIP
    using (Archive zipArchive = new Archive())
    {
        // Get all files from a folder and store their paths in a string array
        string[] filesArray = Directory.GetFiles("YourFolderPath", "*.*", SearchOption.TopDirectoryOnly);

        // Loop through the array and create an ArchiveEntry for each file
        foreach (string fileDiskPath in filesArray)
        {
            string fileName = Path.GetFileName(fileDiskPath);
            zipArchive.CreateEntry(fileName, fileDiskPath);
        }

        // Save the Archive in memory
        zipArchive.Save(zipFileInMemory);
    }
}

Informazioni aggiuntive

  • È possibile modificare facilmente il codice per applicare metodi di crittografia o compressione al file ZIP.
  • Questa soluzione consente di eseguire ulteriori operazioni sul file ZIP in-memory, come inviarlo attraverso una rete o salvarlo sul disco in seguito.

conclusione

Questo tutorial ha dimostrato come creare un file ZIP in memoria utilizzando C#. Seguendo la formula fornita, puoi gestire efficacemente la compressione dei file all’interno delle tue applicazioni senza bisogno di creare file fisici. Per funzionalità più avanzate come l’estrazione di file ZIP, vedere ulteriori documenti Aspose.ZIP.

 Italiano