Com crear un fitxer ZIP en memòria en C#

Com crear un fitxer ZIP en memòria en C#

En aquest tutorial pas a pas, aprendràs com crear un ZIP fitxer en memòria utilitzant C#. El procés descrits aquí et permet comprimir fitxers i carpetes en un format ZIP sense necessitat de crear un fitxer físic al disc.

Avantatges de crear fitxers ZIP en memòria

  1. Rendiment:
  • Evita la sobrecàrrega d’E/S de disc, fent el procés més ràpid.
  1. Emmagatzematge temporal:
  • Manté els fitxers en memòria per a un accés i processament ràpids.
  1. Flexibilitat:
  • Facilita operacions com l’enviament de fitxers a través d’una xarxa sense emmagatzematge intermedi.

Requisits previs: Preparació de l’entorn

  1. Configura Visual Studio o qualsevol IDE compatible amb .NET.
  2. Instal·leu Aspose.ZIP des del NuGet Package Manager.

Guia pas a pas per crear un fitxer ZIP en memòria

Pas 1: Instal·la Aspose.ZIP

Comença afegint la biblioteca Aspose.ZIP al teu projecte.

Install-Package Aspose.ZIP

Pas 2: Inclou l’espai de noms

Afegeix el Aspose.Zip espai de noms al teu codi per utilitzar-ne les funcionalitats.

using Aspose.Zip;

Pas 3: Carrega fitxers des del disc

Recupera les rutes dels fitxers de la carpeta d’origen en una matriu de cadenes.

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

Pas 4: Crea un objecte Archive

Instancia un Archive objecte en memòria per emmagatzemar les entrades ZIP.

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

Pas 5: Crea entrades Archive

Itera sobre la matriu de fitxers i crea un ArchiveEntry per a cada fitxer.

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

Pas 6: Desa el fitxer ZIP en memòria.

Crea l’arxiu ZIP en memòria desant-lo a l MemoryStream.

zipArchive.Save(zipFileInMemory);

Exemple de codi complet per crear un fitxer ZIP en memòria.

Aquí teniu el codi complet que il·lustra com crear un fitxer ZIP en memòria:

using Aspose.Zip;
// 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(".", "*.*", 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);
    }
}

Informació addicional

  • Podeu modificar fàcilment el codi per aplicar mètodes d’encriptació o compressió al fitxer ZIP.
  • Aquesta solució us permet realitzar operacions addicionals sobre el fitxer ZIP en memòria, com ara enviar-lo a través d’una xarxa o desar-lo al disc més tard.

Conclusió

Aquest tutorial ha demostrat com crear un fitxer ZIP en memòria utilitzant C#. Seguint l’esquema proporcionat, podeu gestionar eficientment la compressió de fitxers dins les vostres aplicacions sense necessitat de crear fitxers físics. Per a funcions més avançades com l’extracció de fitxers ZIP, consulteu la documentació addicional de Aspose.ZIP.

 Català