COMPARACIóN CON OTROS COMPONENTES

Tutorial de archivo Zip para desarrolladores de C# que utilizan IronXL

Publicado en 5 de febrero, 2025
Compartir:

Introducción a ZipArchive

Siempre que piensas en enviar un archivo en un formato comprimido, lo primero que te viene a la mente suele ser un archivo Zip. Un archivo zip es un formato popular para comprimir y empaquetar un solo archivo o una colección completa en un solo archivo. Sin embargo, cuando hay grandes volúmenes de archivos para comprimir, trabajar con ellos puede volverse frustrante ya que tendrías que archivarlos y formatearlos uno por uno. Pero no tiene que ser así. Las tareas de gran valor necesitan automatización para hacerse programáticamente. Podemos usar IronZip, una biblioteca simple pero intuitiva, para lograr todo eso y más.

En este artículo, discutiremos brevemente las características y funcionalidades principales de IronZIP y cómo puede ayudarle a automatizar mejor su flujo de trabajo, aumentar la eficiencia y eliminar las tareas manuales propensas a errores.

Crear un nuevo archivo zip a partir de una carpeta o archivos

A continuación se muestra un ejemplo que toma cinco archivos, los comprime en un solo archivo y los exporta después de la operación. Todos los ejemplos de este artículo están encerrados en el método static void main para evitar código repetido.

using IronZip;

// Create an empty ZIP
using (var archive = new IronZipArchive())
{
    // Add files to the ZIP
    archive.Add("./assets/image1.jpg");
    archive.Add("./assets/image2.jpg");
    archive.Add("./assets/image3.jpg");

    // Export the ZIP
    archive.SaveAs("output.zip");
}
using IronZip;

// Create an empty ZIP
using (var archive = new IronZipArchive())
{
    // Add files to the ZIP
    archive.Add("./assets/image1.jpg");
    archive.Add("./assets/image2.jpg");
    archive.Add("./assets/image3.jpg");

    // Export the ZIP
    archive.SaveAs("output.zip");
}
Imports IronZip

' Create an empty ZIP
Using archive = New IronZipArchive()
	' Add files to the ZIP
	archive.Add("./assets/image1.jpg")
	archive.Add("./assets/image2.jpg")
	archive.Add("./assets/image3.jpg")

	' Export the ZIP
	archive.SaveAs("output.zip")
End Using
$vbLabelText   $csharpLabel
  1. Primero importamos IronZIP.

  2. Luego, usando IronZIP, creamos un archivo.

  3. Luego llamamos a archive.add()` y agregar varios archivos al archivo. Recuerde que al pasar los nombres de las rutas deben ser rutas absolutas, o la operación no podrá encontrar los archivos correspondientes.

  4. Finalmente, llamamos a `archive.SaveAs()y exportar el archivo zip como output.zip.

Actualizar un archivo zip existente con nuevos archivos o modificaciones

Vamos a revisar otro ejemplo; esta vez, editaremos el archivo zip existente con nuevos archivos para mostrar la funcionalidad de IronZIP.

using IronZip;

// Open an existing ZIP
using (var archive = IronZipArchive.FromFile("existing.zip"))
{
    // Add files
    archive.Add("./assets/image3.png");
    archive.Add("./assets/image4.png");

    // Export the ZIP
    archive.SaveAs("result.zip");
}
using IronZip;

// Open an existing ZIP
using (var archive = IronZipArchive.FromFile("existing.zip"))
{
    // Add files
    archive.Add("./assets/image3.png");
    archive.Add("./assets/image4.png");

    // Export the ZIP
    archive.SaveAs("result.zip");
}
Imports IronZip

' Open an existing ZIP
Using archive = IronZipArchive.FromFile("existing.zip")
	' Add files
	archive.Add("./assets/image3.png")
	archive.Add("./assets/image4.png")

	' Export the ZIP
	archive.SaveAs("result.zip")
End Using
$vbLabelText   $csharpLabel
  1. Primero importamos IronZIP.

  2. Luego, usando IronZIP, creamos un archivo, pero esta vez, importamos el archivo zip existente con IronZipArchive.FromFile()`.

  3. Luego llamamos a archive.add()` y añada los archivos deseados al archivo. Recuerde que al pasar los nombres de las rutas, deben ser rutas absolutas, o la operación no encontrará el archivo existente. Alternativamente, separe este paso utilizando una cadena de texto variable como nombre de archivo para un solo archivo, para facilitar la legibilidad.

  4. Finalmente, llamamos a `archive.SaveAs()` y exporta el archivo zip como `result.zip.`

    Como puede ver en el código anterior, la operación y el formato son similares a los utilizados para crear y agregar archivos a un archivo Zip. La principal diferencia es que en su lugar importamos el archivo zip, lo que demuestra la funcionalidad simple pero intuitiva de IronZIP.

Extracción de archivos de un archivo Zip

También podemos usar IronZIP para extraer archivos de un archivo Zip o paquete Zip, como en los ejemplos anteriores; revisémoslo en otro ejemplo.

using IronZip;

// Extract ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
using IronZip;

// Extract ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
Imports IronZip

' Extract ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted")
$vbLabelText   $csharpLabel

Importamos IronZip y llamamos a `IronZipArchive.ExtractArchieveToDirectory`; el método hace exactamente lo que se indica y simplemente extrae el contenido del archivo zip existente al directorio proporcionado.

Además, en casos donde tengas que lidiar con archivos zip protegidos con contraseña, también podríamos usar otro método para extraer los archivos.

using IronZip;
using IronZip.Enum;

// Extract protected ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
using IronZip;
using IronZip.Enum;

// Extract protected ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
Imports IronZip
Imports IronZip.Enum

' Extract protected ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd")
$vbLabelText   $csharpLabel

En última instancia, pasamos otro parámetro: la contraseña del archivo zip protegido. El resto de la operación es igual al código anterior.

Temas avanzados y mejores prácticas

Los ejemplos de código para añadir, extraer y crear mencionados anteriormente son los más comunes al trabajar con archivos zip. Sin embargo, en otros casos donde se necesita un uso más avanzado, como extraer otros formatos o simplemente ver el contexto del archivo, IronZIP te tiene cubierto y más.

Características avanzadas de IronZIP

  • Compatibilidad cruzada: IronZIP es compatible con una amplia gama de versiones de .NET, incluyendo .NET Core(8.7, 6.5, and 3.1+), Estándar(2.0+)y .NET Framework(4.6.2+). La biblioteca también funciona en la web(Blazor)Móvil(MAUI)Escritorio(WPF)y Consola. Esto permite a los desarrolladores superar realmente las limitaciones de las plataformas y versiones.
  • Generación de archivos: Los ejemplos anteriores se centran principalmente en el formato de archivo ZIP; sin embargo, IronZIP también funciona con TAR, GZIP y BZIP2.
  • Extracción de archivos: Extrae archivos y descomprime archivos con IronZIP con un solo bloque de código, como se muestra arriba.
  • Agregar archivos y sistemas de archivos: IronZIP también te ayuda a manipular archivos zip al máximo, agregando imágenes, archivos de texto, documentos como PDFs, DOCX y XLSX, y audio como MP3 y WAV. Incluso puedes agregar un sistema de archivos comprimido completo o un archivo de texto comprimido para crear un archivo ZipArchive.
  • Exportar y Crear: Además de crear un archivo Zip esencial, puede protegerlo con contraseña utilizando los estándares tradicionales o AES128 y AES256. También puedes generar y exportar formatos como TAR, GZIP y BZIP2, que se mencionan arriba.
  • Nivel de compresión personalizado: IronZIP tiene archivos de compresión personalizados y permite a los desarrolladores cambiar la configuración del algoritmo de compresión para ajustarlo según sus necesidades.
  • Edición de archivos: Agrega entradas de archivo, extrae archivos y elimina entradas de archivo fácilmente utilizando IronZIP, una solución integral para todas las operaciones relacionadas con la edición de archivos.
  • Propiedades de Entrada de Archivo: IronZIP permite establecer un comentario opcional del archivo y obtener los nombres de los archivos dentro del archivo sin extraerlos, lo cual ayuda a dejar comentarios especificados para cada archivo.
  • Opciones de licencia: IronZIP ofrece adaptableopciones de licenciaincluyendo versiones de prueba gratuitas, permitiendo a los desarrolladores seleccionar lo que mejor se adapte a sus necesidades.

Conclusión

El manejo de archivos comprimidos y archivos es una tarea diaria que todos los desarrolladores tienen que hacer, pero manejar un gran volumen de ellos puede ser estresante y causar errores propensos al humano. Aunque existen opciones como System.IO.Compression, al usar IronZIP, puedes lograr más y resolver tus problemas rápidamente al tratar con archivos comprimidos. En el artículo, discutimos brevemente las características avanzadas de IronZIP y las operaciones básicas que pueden ocurrir comúnmente en escenarios diarios, ya sea creando un archivo zip, eliminando entradas dentro del archivo zip o agregando más archivos. Comprender cómo realizarlos programáticamente con IronZIP conduce a una mayor eficiencia y escalabilidad, y a la automatización de todas las tareas relacionadas con archivos.

Regan Pun

Regan Pun

Ingeniero de software

 LinkedIn

Regan se licenció en Ingeniería Electrónica por la Universidad de Reading. Antes de incorporarse a Iron Software, sus anteriores puestos de trabajo le obligaban a centrarse en tareas concretas; lo que más le gusta de Iron Software es la variedad de tareas que puede realizar, ya sea añadiendo valor a las ventas, el soporte técnico, el desarrollo de productos o el marketing. Le gusta entender cómo utilizan los desarrolladores la biblioteca de Iron Software y utilizar ese conocimiento para mejorar continuamente la documentación y desarrollar los productos.
< ANTERIOR
Comparación entre IronXL y GemBox.Spreadsheet
SIGUIENTE >
EPPlus Leer Excel a Datatable C# (IronXL Tutorial)