Cómo crear un archivo ZIP en memoria en C#

Cómo crear un archivo ZIP en memoria en C#

En este tutorial paso a paso, aprenderá cómo crear un archivo ZIP en la memoria utilizando C#. El proceso enumerado aquí le permite comprimir los archivos y las cartas en un formato ZIP sin necesidad de crear un archivo físico en el disco.

Beneficios de crear archivos ZIP en memoria

  • El rendimiento:- Evita el disco I/O sobre la parte superior, lo que hace que el proceso sea más rápido.

  • El almacenamiento temporal:- Keeps archivos en memoria para acceso y procesamiento rápidos.

  • Flexibilidad:- Facilita operaciones como enviar archivos a través de una red sin almacenamiento intermedio.

Requisitos: Preparación del medio ambiente

  • Instalar Visual Studio o cualquier compatible .NET IDE.
  • Instalar Aspose.ZIP desde el NuGet Package Manager.

Guía paso a paso para crear archivos ZIP en memoria

Paso 1: Instalar Aspose.ZIP

Comience añadiendo la biblioteca Aspose.ZIP a su proyecto.

Install-Package Aspose.ZIP

Paso 2: Incluye el espacio de nombre

Añadir el Aspose.Zip Nomespace a su código para utilizar sus funcionalidades.

using Aspose.Zip;

Paso 3: Cargar archivos desde el disco

Retirar los caminos de archivo de la carpeta de fuente en un arreglo de líneas.

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

Paso 4: Crear un objeto de archivo

Inmediatamente un Archive Objeto en memoria para mantener las entradas ZIP.

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

Paso 5: Creación de archivos

Descarga el archivo y crea un ArchiveEntry para cada archivo.

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

Paso 6: Salva el archivo ZIP en memoria

Crea el archivo ZIP en la memoria al salvarlo a la MemoryStream.

zipArchive.Save(zipFileInMemory);

Ejemplo de código completo para crear un archivo ZIP en la memoria

Aquí está el código completo que ilustra cómo crear un archivo ZIP en la 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);
    }
}

Información adicional

  • Puedes modificar fácilmente el código para aplicar métodos de cifrado o compresión al archivo ZIP.
  • Esta solución le permite realizar operaciones adicionales en el archivo ZIP en memoria, como enviarlo a través de una red o ahorrarlo en el disco más tarde.

Conclusión

Este tutorial ha demostrado cómo crear un archivo ZIP en la memoria utilizando C#. Al seguir la fuente proporcionada, puede gestionar eficazmente la composición de archivos dentro de sus aplicaciones sin necesitar crear archivos físicos. Para más características avanzadas como extraer archivos ZIP, consulte la documentación adicional Aspose.ZIP.

 Español