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

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

En aquest tutorial pas a pas, aprendràs com crear un fitxer ZIP en la memòria utilitzant C#. El procés que s’hi descriu permet compressar fitxers i mapes en un format ZIP sense necessitat de crear un fitxer físic en el disc.

Beneficis de crear arxius ZIP en memòria

  • Performances:- Evita la part superior del disc I/O, fent que el procés sigui més ràpid.

  • Emmagatzematge temporal:- Keeps arxius en memòria per a accés ràpid i processament.

  • Flexibilitat:- Facilita operacions com l’enviament de fitxers a través d’una xarxa sense emmagatzematge intermedi.

Previsió: Preparar el medi ambient

  • Instal·lació de Visual Studio o qualsevol compatible .NET IDE.
  • Instal·la Aspose.ZIP des del NuGet Package Manager.

Guia de pas a pas per crear un arxiu ZIP en la memòria

Pas 1: Instal·lació Aspose.ZIP

Comenceu afegint la biblioteca Aspose.ZIP al vostre projecte.

Install-Package Aspose.ZIP

Pas 2: Incloure el nom

Add the Aspose.Zip namespace to your code to use its functionalities.

using Aspose.Zip;

Pas 3: Carregar els arxius des del disc

Retirar els camins de fitxers de la carpeta de font a una sèrie de cordes.

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

Pas 4: Crear un objecte d’arxiu

Instantiate an Archive object in memory to hold the ZIP entries.

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

Pas 5: Crear entrades d’arxiu

Loop through the file array and create an ArchiveEntry for each file.

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

Pas 6: Salvar el fitxer ZIP en memòria

Create the ZIP archive in memory by saving it to the MemoryStream.

zipArchive.Save(zipFileInMemory);

Exemple de codi complet per crear un arxiu ZIP en la memòria

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

// 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);
    }
}

Informació addicional

  • Es pot modificar fàcilment el codi per aplicar mètodes de xifració o compressió al fitxer ZIP.
  • Aquesta solució li permet realitzar més operacions en el fitxer ZIP en memòria, com ara enviar-lo a través d’una xarxa o salvar-lo al disc més tard.

Conclusió

Aquest tutorial ha demostrat com crear un fitxer ZIP en la memòria utilitzant C#. Seguint la font proporcionada, vostè pot gestionar eficaçment la compressió de fitxers dins de les seves aplicacions sense necessitat de crear fitxers físics. Per a característiques més avançades com l’extracció de fitxers ZIP, consulteu la documentació Aspose.ZIP addicional.

 Català