Cómo comprimir una carpeta en C#

Cómo comprimir una carpeta en C#

Este artículo rápido explica cómo zip una pasta en C#. proporciona pasos detallados y una muestra de código para ayudar en la creación de un archivo ZIP para una pasta y sus contenidos.

Beneficios de Zipping Folders

  • Eficiencia espacial:

  • Reduce el espacio de almacenamiento mediante la compresión de archivos.

  • Gestión de archivos organizados:

  • Combina varios archivos en un solo archivo para facilitar la distribución y la gestión.

  • Transferencias más rápidas:

  • Los tamaños de archivo más pequeños conducen a un tiempo de descarga y descarga más rápido.

Requisitos: Preparación del medio ambiente

  • Instalar Visual Studio o cualquier compatible .NET IDE.
  • Instalar la biblioteca Aspose.ZIP a través de NuGet Package Manager.

Guía paso a paso para ZIP una carpeta en C#

Paso 1: Instalar Aspose.ZIP

Añadir la biblioteca Aspose.ZIP a su proyecto utilizando el gerente de paquetes NuGet. Esto permite las características de compresión de archivos y carteles en los proyectos .NET y C#.

Install-Package Aspose.ZIP

Paso 2: Crear un objeto FileStream

Instantado a FileStream El objeto para el archivo ZIP de salida. Este fichero será el Archivo de destino, por ejemplo “AnimationImages.zip”.

using System.IO;
var zippedFolder = File.Open("AnimationImages.zip", FileMode.Create);

Paso 3: Crear un objeto de archivo ZIP

Crea un ejemplo de la Archive clase para gestionar las operaciones de archivo ZIP en C#.

using (Archive archiveFile = new Archive())
{
    // Further processing follows here
}

Paso 4: Crear entradas en el archivo

Añadir todos los archivos y carpetas del directorio objetivo de forma recurrente utilizando el CreateEntries Esto le permite zipar todos los contenidos de una carpeta en C#.

archiveFile.CreateEntries("AnimationImages");

Paso 5: Salva el archivo ZIP

Una vez que se crean las entradas, guardar el archivo en el disco. Esto producirá un fichero ZIP que contiene todos los archivos seleccionados y subfolders.

archiveFile.Save(zippedFolder);

Exemplos de código completo para ZIP una carpeta

Aquí está el ejemplo completo de C# que demuestra cómo zip una carpeta, agregar archivos a un archivo ZIP, o zip múltiples ficheros en un directorio:

// Create a file stream object for the output zip file
using (FileStream zippedFolder = File.Open("AnimationImages.zip", FileMode.Create))
{
    // Create a Zip archive file class object
    using (Archive archiveFile = new Archive())
    {
        // Add all the files and folders recursively
        archiveFile.CreateEntries("AnimationImages");

        // Save the output ZIP file
        archiveFile.Save(zippedFolder);
    }
}

Información adicional

  • Usted puede proporcionar un objeto de clase DirectoryInfo como la fuente de los archivos para el archivo ZIP de salida.
  • También puede incluir banderas para controlar si incluir la pasta de raíz en la salida ZIP.
  • Este método es adecuado para los proyectos .NET Core, .Net Framework y ASP.NET.
  • Aspose.ZIP puede gestionar los archivos, las cartas y los directorios en C#.

Preguntas frecuentes (FAQ)

¿Cómo pongo una cartera en C#?

Siga los pasos anteriormente para agregar Aspose.ZIP a su proyecto y utilizar CreateEntries y Save los métodos.

¿Puedo crear un archivo ZIP en C# para varios archivos?

Sí, usamos el CreateEntries método para agregar todos los archivos en una carpeta, o añadir archivo individualmente.

¿Cómo zipar archivos en un directorio utilizando C#?

Pasar la ruta del directorio a CreateEntries para agregar de forma recurrente todos los archivos y subfolders al ZIP.

¿Es compatible con .NET Core?

Sí, Aspose.ZIP trabaja con los proyectos .NET Core, .Net Framework y ASP.NET.

¿Puedo agregar archivos a un archivo ZIP existente en C#?

Sí, puede abrir un archivo existente y agregar archivos o carpetas según sea necesario.

¿Cómo puedo controlar si la pasta de raíz está incluida en el archivo ZIP?

Utilice las banderas o opciones disponibles en CreateEntries para el control fin-grinado.

Conclusión

Este tutorial te ha guiado a través del proceso de zipping una pasta completa en C# con Aspose.ZIP. Puedes zipar las cartas, agregar archivos a un ZIP, y gestionar la composición de archivo de manera eficiente en aplicaciones .NET, .Net Core y ASP.NET. Para extraer o deszipping archivas, vea nuestros otros tutoriales Aspase.

 Español