Create ZIP in C#

Introducción a los Archivos ZIP

Los archivos ZIP son esenciales para comprimir y consolidar uno o más archivos o carpetas en un solo contenedor. Este formato no solo reduce el tamaño del archivo para almacenamiento y transmisión, sino que también retiene información de metadatos, facilitando la gestión de archivos. Los archivos ZIP se utilizan ampliamente en aplicaciones de escritorio y web para tareas como cargar, descargar, compartir y asegurar archivos mediante cifrado.

En este artículo, exploraremos varios métodos para crear archivos ZIP programáticamente en C#. Aprenderás a:

Biblioteca ZIP de C#

Aspose.ZIP para .NET es una API robusta diseñada para comprimir y descomprimir archivos y carpetas dentro de aplicaciones .NET. Ofrece características como cifrado AES para asegurar tus archivos dentro de archivos ZIP. Puedes instalar fácilmente la API desde NuGet o descargar los binarios de la sección de Descargas.

Crear un Archivo ZIP en C#

Para comprimir un archivo en un archivo ZIP, sigue estos pasos:

  1. Crea un objeto FileStream para el archivo ZIP de salida.
  2. Abre el archivo fuente con un objeto FileStream.
  3. Instancia la clase Archive.
  4. Agrega el archivo al archivo usando el método Archive.CreateEntry(string, FileStream).
  5. Guarda el archivo ZIP con el método Archive.Save(FileStream).

Aquí hay un ejemplo de código que demuestra cómo agregar un archivo a un archivo ZIP usando C#:

Agregar Múltiples Archivos a un Archivo ZIP en C#

Para agregar múltiples archivos a un archivo ZIP, puedes elegir uno de los siguientes métodos:

Usando FileStream

Utiliza la clase FileStream para agregar múltiples archivos al archivo ZIP con el método Archive.CreateEntry(String, FileStream). Aquí te mostramos cómo:

Usando FileInfo

Alternativamente, puedes usar la clase FileInfo para agregar archivos. Este método carga los archivos utilizando la clase FileInfo y los agrega al archivo ZIP con el método Archive.CreateEntry(String, FileInfo). Consulta el ejemplo a continuación:

Usando la Ruta del Archivo

También puedes agregar archivos directamente proporcionando sus rutas al método Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings). Aquí te mostramos cómo:

Agregar Carpetas a un Archivo ZIP en C#

Agregar una carpeta a un archivo ZIP puede ser una forma conveniente de incluir múltiples archivos. Para comprimir una carpeta en C#, sigue estos pasos:

  1. Crea un objeto FileStream para el archivo ZIP de salida.
  2. Instancia la clase Archive.
  3. Utiliza la clase DirectoryInfo para especificar la carpeta a comprimir.
  4. Agrega la carpeta al ZIP usando el método Archive.CreateEntries(DirectoryInfo).
  5. Guarda el archivo ZIP con el método Archive.Save(FileStream).

Aquí hay un ejemplo de código que demuestra cómo agregar una carpeta a un archivo ZIP en C#:

Crear un ZIP Protegido por Contraseña usando ZipCrypto en C#

Para mejorar la seguridad, puedes crear archivos ZIP protegidos por contraseña utilizando cifrado ZipCrypto. Esto se logra utilizando la clase ArchiveEntrySettings en el constructor de la Archive, lo que te permite especificar el tipo de cifrado.

Aquí hay un ejemplo de cómo crear un archivo ZIP protegido por contraseña usando ZipCrypto en C#:

Crear ZIP Protegido por Contraseña con Cifrado AES

La biblioteca Aspose.ZIP para .NET también admite cifrado AES para asegurar archivos ZIP. Puedes elegir entre los siguientes métodos de cifrado AES:

  • AES128
  • AES192
  • AES256

Para aplicar cifrado AES, utiliza la clase AesEcryptionSettings. Aquí te mostramos cómo crear un ZIP protegido por contraseña con cifrado AES en C#:

Establecer Modo de Compresión Paralela

Para casos que involucran múltiples entradas, puedes configurar la API para compresión paralela utilizando la clase ParallelOptions. Aspose.ZIP para .NET proporciona varios modos de compresión paralela:

  • Nunca - No comprimir en paralelo.
  • Siempre - Siempre comprimir en paralelo (ten cuidado con problemas de falta de memoria).
  • Automático - Decidir automáticamente si usar compresión paralela según las entradas.

Aquí hay un ejemplo que demuestra cómo establecer el modo de compresión paralela al comprimir múltiples archivos:

Aprende Más Sobre la Biblioteca ZIP de C# .NET

Profundiza en nuestra API ZIP de C# con los siguientes recursos:

Prueba Archivos ZIP en Línea

Explora nuestra aplicación en línea gratuita, basada en Aspose.ZIP para .NET, para comprimir archivos en archivos ZIP fácilmente.

Conclusión

En este artículo, has aprendido cómo crear archivos ZIP programáticamente en C#. Los ejemplos de código proporcionados demuestran cómo agregar archivos y carpetas a archivos ZIP. Además, cubrimos cómo crear archivos ZIP protegidos por contraseña utilizando tanto métodos de cifrado ZipCrypto como AES. También discutimos la compresión paralela para manejar archivos grandes de manera eficiente. Si tienes alguna pregunta o necesitas más asistencia, no dudes en comunicarte a través de nuestro foro.

Ver También

Descomprimir o Extraer Archivos usando C#Descomprimir Archivos en Archivos ZIP usando C#Crear Archivos 7z (7-Zip) en C# .NET
Abrir o Extraer Archivos 7z (7zip) en C# .NETCrear y Extraer Archivos GZip usando C#Convertir Archivos RAR a Archivo ZIP en C#
Convertir Archivos ZIP a TAR en C#Crear un Archivo ZIP Plano en C#Crear un Archivo Ejecutable Autoextraíble en C#
Crear Archivos TAR.GZ y TAR.XZ en C#Eliminar Archivos en un Archivo ZIP en C#Extraer Archivos ZIP Anidados en C#
Combinar Múltiples Archivos ZIP o TAR en C#Cómo Crear Archivos ZIPExtraer 7z en Línea