Crear ZIP en C#

Introducción a los archivos ZIP en C#

Los archivos ZIP son esenciales para comprimir y organizar archivos y carpetas en un solo contenedor. No solo reducen el tamaño de los archivos para un almacenamiento y transmisión eficientes, sino que también mantienen los metadatos y pueden ser cifrados por razones de seguridad. Este artículo te guiará a través de varios métodos para crear archivos ZIP programáticamente en C#, cubriendo operaciones como agregar archivos y carpetas, crear archivos protegidos por contraseña y aplicar cifrado AES.

Lo que aprenderás

En este artículo, descubrirás cómo:

Biblioteca ZIP de C#

La Aspose.ZIP para .NET es una herramienta poderosa para manejar operaciones de archivos ZIP dentro de aplicaciones .NET. Simplifica el proceso de comprimir o descomprimir archivos y carpetas y admite cifrado AES para una mayor seguridad. Puedes instalar fácilmente esta biblioteca desde NuGet o descargar los binarios de la sección Descargas.

Crear un archivo ZIP en C#

Para crear un archivo ZIP programáticamente en C#, sigue estos pasos:

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

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

Agregar múltiples archivos a un archivo ZIP en C#

Cuando necesitas agregar múltiples archivos a un archivo ZIP, puedes usar varios enfoques:

Usando FileStream para agregar múltiples archivos

Este método emplea la clase FileStream para agregar archivos al archivo ZIP a través del método Archive.CreateEntry(String, FileStream). Aquí te mostramos cómo hacerlo:

Usando FileInfo para múltiples archivos

Alternativamente, puedes utilizar la clase FileInfo para cargar archivos y agregarlos al archivo ZIP con el método Archive.CreateEntry(String, FileInfo). A continuación se muestra un ejemplo de código:

Usando rutas de archivo

También puedes proporcionar directamente las rutas de archivo al método Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings). Aquí tienes un ejemplo:

Agregar carpetas a un archivo ZIP en C#

Para agregar una carpeta a un archivo ZIP en C#, puedes seguir estos pasos:

  1. Crea un objeto FileStream para el archivo ZIP de salida.
  2. Instancia la clase Archive.
  3. Usa la clase DirectoryInfo para especificar la carpeta que deseas 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í tienes un ejemplo de código que ilustra cómo agregar una carpeta a un archivo ZIP:

Crear un ZIP protegido por contraseña usando ZipCrypto en C#

Para asegurar tus archivos ZIP, puedes aplicar protección por contraseña utilizando cifrado ZipCrypto. Esto se logra utilizando la clase ArchiveEntrySettings en el constructor de la Archive, que acepta el tipo de cifrado como parámetro.

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

Crear ZIP protegido por contraseña con cifrado AES

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

  • AES128
  • AES192
  • AES256

Para aplicar cifrado AES, utiliza la clase AesEcryptionSettings. A continuación se muestra un ejemplo de código que demuestra cómo crear un archivo ZIP protegido por contraseña con cifrado AES en C#:

Configurar modo de compresión paralela

Para un manejo eficiente de múltiples entradas, puedes configurar la API para compresión paralela utilizando la clase ParallelOptions. Los modos de compresión paralela disponibles son:

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

Aquí te mostramos cómo establecer el modo de compresión paralela mientras comprimes múltiples archivos con la biblioteca ZIP de Aspose C#:

Aprende más sobre la biblioteca ZIP de C# .NET

Para profundizar tu comprensión de la biblioteca ZIP de C#, explora los siguientes recursos:

Prueba nuestra herramienta de compresión ZIP en línea

También puedes experimentar con nuestra aplicación en línea gratuita basada en Aspose.ZIP para .NET para comprimir archivos en archivos ZIP sin esfuerzo.

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, crear archivos ZIP protegidos por contraseña utilizando métodos de cifrado ZipCrypto y AES, y configurar la compresión paralela. Si tienes alguna pregunta o necesitas más ayuda, no dudes en ponerte en contacto a través de nuestro foro.

Véase 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 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