
Cómo descomprimir archivo a directorio en C#
Descomprimir archivos programáticamente es una tarea común en el desarrollo de software, especialmente cuando se trabaja con archivos comprimidos. En este artículo, exploraremos cómo extraer archivos de archivos ZIP en C# usando la biblioteca IronZIP.
Ya sea que estés trabajando en una aplicación de Windows o en un proyecto .NET, entender el proceso de descomprimir archivos puede ser invaluable. Vamos a sumergirnos y aprender cómo manejar eficazmente los archivos ZIP dentro de tu base de código C#.
Lo que explicará este artículo:
- El proceso de instalación de la biblioteca IronZIP
- Cómo extraer un archivo ZIP
- Cómo extraer un archivo ZIP protegido por contraseña
- Cómo crear un archivo ZIP
- Cómo crear archivos ZIP protegidos por contraseña
¿Por qué deberías descomprimir archivos?
Los archivos ZIP, también conocidos como archivos ZIP, son grupos de múltiples archivos en un único contenedor comprimido. Descomprimir estos archivos implica extraer los datos comprimidos y restaurarlos a su estado original. Este proceso es esencial cuando necesitas acceder o manipular datos dentro de una aplicación C#. IronZIP simplifica esta tarea al proporcionar métodos simples para gestionar datos comprimidos.
¿Qué es IronZIP?
IronZIP es una potente biblioteca de archivos ZIP C# que facilita la creación, lectura y extracción de archivos en aplicaciones .NET. Ya sea que necesites comprimir archivos, extraer datos de archivos existentes o gestionar tus archivos ZIP, IronZIP proporciona una API fácil de usar para lograr estas tareas eficientemente. IronZIP simplifica el trabajo con archivos ZIP en tus aplicaciones .NET.
Soporta varios formatos de archivo, incluidos ZIP, TAR, GZIP y BZIP2. IronZIP es multiplataforma, compatible con .NET Core, .NET Standard y .NET Framework. Y ofrece características avanzadas como archivos protegidos por contraseña, niveles de compresión personalizables y gestión de entradas de archivo.
How to Extract Files to a Directory in C#
Ahora, discutiré algunos ejemplos para extraer de archivos ZIP en C#. Comienza creando un nuevo proyecto C# en Visual Studio. Elige el tipo de proyecto apropiado (por ejemplo, aplicación de consola, Windows Forms, ASP.NET Core, etc.). A continuación, necesitamos instalar el Paquete NuGet de IronZIP.
Instalación de IronZIP a través del Administrador de paquetes NuGet
Para instalar el paquete NuGet de IronZIP, puedes usar el siguiente comando en la Consola del Administrador de Paquetes:
Alternativamente, puedes usar la interfaz de usuario del Administrador de Paquetes en Visual Studio para buscar e instalar el paquete IronZIP.
En tu código C#, importa el espacio de nombres de IronZIP para acceder a sus clases y métodos.
using IronZip;Imports IronZipCode Example to Extract ZIP files in C#
El siguiente código descomprimirá archivos en el directorio especificado en C#.
// This line extracts the "Images.zip" archive to the "Extracted Images" directory
IronZipArchive.ExtractArchiveToDirectory(@"E:\Images.zip", "Extracted Images");' This line extracts the "Images.zip" archive to the "Extracted Images" directory
IronZipArchive.ExtractArchiveToDirectory("E:\Images.zip", "Extracted Images")El código anterior lee el archivo ZIP especificado ("E:\Images.zip"), descomprime su contenido y coloca los archivos extraídos en el directorio llamado "Extracted Images".
Explicación
IronZipArchive se refiere a la clase proporcionada por la biblioteca IronZIP. Es el punto de entrada principal para trabajar con archivos ZIP en tu código C#. ExtractArchiveToDirectory(...) es un método (o función) que la clase IronZipArchive proporciona. Le permite extraer el contenido de un archivo ZIP (en este caso, el archivo "E:\Images.zip") a un directorio especificado (en este caso, el directorio llamado "Extracted Images").
El método toma dos parámetros:
- El primer parámetro (
@"E:\Images.zip") es la ruta al archivo ZIP que desea extraer. - El segundo parámetro (
"Extracted Images") es el directorio donde desea extraer los archivos del archivo ZIP.
Salida:

Cómo extraer un archivo ZIP protegido con contraseña
IronZIP proporciona un método simple para extraer archivos encriptados ZIP. El siguiente código demuestra cómo extraer todos los archivos de un archivo ZIP protegido por contraseña.
// This line extracts the "EncryptedImages.zip" archive to the "ExtractedImages" directory with the given password
IronZipArchive.ExtractArchiveToDirectory(@"EncryptedImages.zip", "ExtractedImages", "zipP@55w0rd");' This line extracts the "EncryptedImages.zip" archive to the "ExtractedImages" directory with the given password
IronZipArchive.ExtractArchiveToDirectory("EncryptedImages.zip", "ExtractedImages", "zipP@55w0rd")El código anterior extrae el contenido del archivo "EncryptedImages.zip" al directorio "ExtractedImages" utilizando IronZIP. También especifica la contraseña "zipP@55w0rd" para la desencriptación, indicando que el archivo ZIP está encriptado y requiere la contraseña proporcionada para la extracción. Sobrescribirá archivos existentes.
Salida:

En C# con IronZIP, descomprimir un archivo a un directorio implica aprovechar al máximo las capacidades de la biblioteca IronZIP. Al emplear funciones como IronZipArchive.ExtractArchiveToDirectory, los desarrolladores pueden extraer fácilmente archivos comprimidos, proporcionando un mecanismo sencillo para manejar el encabezado de archivo local. Proporciona una forma eficiente de actualizar archivos zip y archivos RAR en sus aplicaciones.
IronZIP también proporciona métodos para crear archivos ZIP en aplicaciones C# y .NET. Vamos a crear un archivo ZIP en C#.
Cómo crear un archivo ZIP
El siguiente ejemplo de código creará un archivo ZIP.
static void Main(string[] args)
{
// Create a new ZIP archive with a high compression level (9)
using (var archive = new IronZipArchive(9))
{
// Add image files to the archive
archive.Add(@"E:\Images\image1.png");
archive.Add(@"E:\Images\image2.png");
archive.Add(@"E:\Images\image3.png");
archive.Add(@"E:\Images\image4.png");
// Export the ZIP archive to the file "MyImages.zip"
archive.SaveAs("MyImages.zip");
}
}Sub Main(args As String())
' Create a new ZIP archive with a high compression level (9)
Using archive As New IronZipArchive(9)
' Add image files to the archive
archive.Add("E:\Images\image1.png")
archive.Add("E:\Images\image2.png")
archive.Add("E:\Images\image3.png")
archive.Add("E:\Images\image4.png")
' Export the ZIP archive to the file "MyImages.zip"
archive.SaveAs("MyImages.zip")
End Using
End SubEl código anterior demuestra el uso de IronZIP para crear un nuevo archivo ZIP (con nivel de compresión 9) y agregar múltiples entradas, cada una representando un archivo de imagen (image1.png, image2.png, image3.png, y image4.png) desde las rutas de archivos especificadas.
Finalmente, se utiliza el método SaveAs para exportar el archivo ZIP creado como "MyImages.zip" en el directorio especificado. El nivel de compresión 9 indica máxima compresión, resultando en tamaños de archivo más pequeños pero potencialmente tiempos de procesamiento más largos.

Cómo crear un archivo ZIP protegido con contraseña
El siguiente código creará un archivo ZIP protegido por contraseña.
// Create a new ZIP archive with a high compression level (9)
using (var archive = new IronZipArchive(9))
{
// Password protect the ZIP archive (Support AES128 & AES256)
archive.Encrypt("miPassw0rd", EncryptionMethods.AES256);
// Add image files to the archive
archive.Add(@"E:\Images\image1.png");
archive.Add(@"E:\Images\image2.png");
// Export the ZIP archive as "PasswordProtectedImages.zip"
archive.SaveAs("PasswordProtectedImages.zip");
}' Create a new ZIP archive with a high compression level (9)
Using archive As New IronZipArchive(9)
' Password protect the ZIP archive (Support AES128 & AES256)
archive.Encrypt("miPassw0rd", EncryptionMethods.AES256)
' Add image files to the archive
archive.Add("E:\Images\image1.png")
archive.Add("E:\Images\image2.png")
' Export the ZIP archive as "PasswordProtectedImages.zip"
archive.SaveAs("PasswordProtectedImages.zip")
End UsingEl código anterior demuestra el uso de IronZIP para crear un archivo ZIP protegido por contraseña con un método de encriptación especificado (AES256 en este caso). La contraseña "miPassw0rd" está establecida para proteger el archivo ZIP. El código luego agrega dos archivos de imagen (image1.png y image2.png) desde las rutas de archivos especificadas al archivo.
Finalmente, se utiliza el método SaveAs para exportar el archivo ZIP protegido por contraseña como "PasswordProtectedImages.zip.". Esto asegura la seguridad de los contenidos con la contraseña y el método de cifrado especificados. IronZIP soporta métodos AES128, AES256 y tradicionales.
Conclusión
En resumen, este artículo ha cubierto los aspectos esenciales del manejo de archivos comprimidos programáticamente en C# usando la biblioteca IronZIP. Desde el proceso de instalación hasta ejemplos prácticos de extracción, creación y seguridad de archivos ZIP, los desarrolladores han sido provistos con información valiosa. La API fácil de usar de IronZIP, su compatibilidad multiplataforma y su soporte para métodos de encriptación lo convierten en una solución versátil para gestionar eficientemente archivos ZIP en varias aplicaciones C#.
Ya sea actualizando archivos existentes o trabajando con archivos protegidos por contraseña, IronZIP simplifica el proceso, ofreciendo un conjunto de herramientas robusto para desarrolladores que buscan capacidades efectivas de manipulación de archivos en sus proyectos C#.
IronZIP ofrece opciones de licencia flexibles, incluyendo una prueba gratuita para uso a largo plazo. Los desarrolladores pueden elegir el modelo de licencia que mejor se ajuste a los requisitos de su proyecto, asegurando tanto versatilidad como conveniencia al implementar IronZIP en sus aplicaciones C#.

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.
Artículos Relacionados


