USO DE IRONZIP

Cómo comprimir un archivo y extraerlo a un directorio en C#

Actualizado 26 de marzo, 2024
Compartir:

Los archivos ZIP son una forma práctica de agrupar varios archivos y directorios en un único archivo. Tanto si gestionas copias de seguridad como si distribuyes software o compartes archivos, la extracción eficiente de archivos ZIP es crucial. IronZIP una poderosa .NET simplifica este proceso proporcionando métodos sencillos.

Cómo comprimir un archivo y extraerlo a un directorio en C#

  1. Instale la biblioteca IronZIP en su proyecto.
  2. Utilice la función ExtractArchiveToDirectory() proporcionado por IronZIP.
  3. Especifique la ruta a su archivo ZIP (por ejemplo, "salida.zip") y el directorio de extracción de destino (por ejemplo, "extraído").

¿Qué es IronZIP?

IronZIP es una versátil biblioteca C# que gestiona archivos ZIP en aplicaciones .NET. IronZIP simplifica la creación de software de escritorio, aplicaciones web o herramientas de automatización. creación de, lectura y extracción de Archivos ZIP.

Características principales

Alto Rendimiento: IronZIP tiene un potente motor para comprimir y descomprimir archivos, haciendo las cosas más rápidas y utilizando menos recursos.

Facilidad de uso: Los desarrolladores pueden integrar IronZIP sin problemas en sus proyectos. La biblioteca proporciona métodos sencillos para trabajar con archivos ZIP.

**Integración de NuGet IronZIP a través del gestor de paquetes NuGet, haciéndolo accesible a su solución C# ziparchive extract to directory.

Compatibilidad multiplataforma: IronZIP es compatible con varias plataformas, incluyendo Windows, Linux y macOS.

Documentación y tutoriales: Explora la página oficial documentación y tutoriales para aprender a aprovechar IronZIP con eficacia.

IronZIP ofrece a los desarrolladores una solución fiable y eficaz para comprimir archivos para su distribución, gestionar copias de seguridad o manejar archivos de datos.

Extracción de un archivo ZIP a un directorio

Antes de empezar, necesitamos instalar la librería IronZIP en nuestro proyecto. Podemos añadirlo utilizando NuGet Package Manager Console con el siguiente comando:

Install-Package IronZip

El comando anterior instalará la librería IronZIP junto con las dependencias necesarias en nuestro proyecto.

Alternativamente, también puede descargarlo desde NuGet Package Manager for Solution navegando por "IronZip".

Incluya las directivas using necesarias en su código:

using IronZip;
using IronZip.Enum;
using IronZip;
using IronZip.Enum;
Imports IronZip
Imports IronZip.Enum
VB   C#

Extraer el archivo ZIP al directorio especificado

IronZIP simplifica el proceso de extracción de un archivo zip a un directorio. Podemos extraer archivos usando sólo 1 línea de código. El siguiente código extraerá todos los archivos de la ruta proporcionada.

internal class Program
 { 
static void Main(string [] args)
 {
     IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts");
 }
}
internal class Program
 { 
static void Main(string [] args)
 {
     IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts");
 }
}
Friend Class Program
Shared Sub Main(ByVal args() As String)
	 IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts")
End Sub
End Class
VB   C#

La línea de código anterior extrae el contenido del archivo "Contracts.zip" y lo coloca en una carpeta de destino llamada "Contracts". Es una forma cómoda de manejar archivos ZIP mediante programación en aplicaciones C#.

Explicación

  1. IronZipArchivo: Es una clase u objeto de la librería IronZIP. Proporciona métodos y propiedades para trabajar con archivos ZIP.
  2. ExtraerArchivoADirectorio("Contratos.zip", "Contratos"):
    1. El método ExtractArchiveToDirectory se ejecuta en una instancia de IronZipArchive
    2. El primer argumento, "Contratos.zip", representa la ruta al archivo ZIP que desea extraer.
  3. El segundo argumento, "Contracts", especifica el directorio de destino donde se colocarán los archivos extraídos.

    Si los archivos ya existen en un directorio especificado, sobrescribirá los archivos existentes. El archivo extraído es como:

    Cómo comprimir archivo extraer a directorio en C#: Figura 1 - Sistema de archivos

Extraer archivos ZIP protegidos con contraseña

IronZIP también proporciona un método para extraer archivos comprimidos protegidos por contraseña. El siguiente ejemplo extraerá los archivos de un archivo ZIP protegido por contraseña.

IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip");
IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip");
IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip")
VB   C#

El código anterior extrae el contenido de un archivo ZIP protegido con contraseña llamado "ContratosProtegidosContraseña.zip" y lo coloca en un directorio llamado "Contratos". La contraseña especificada garantiza la extracción segura del archivo ZIP protegido.

Acceso al archivo existente

IronZIP permite acceder a archivos ZIP existentes sin extraerlos de un directorio especificado. Esta funcionalidad es importante para escenarios como la extracción de ficheros de archivos comprimidos, la validación de la existencia de entradas específicas o incluso la inspección dinámica del contenido de archivos ZIP en respuesta a las interacciones del usuario.

Ver entradas del archivo ZIP

El siguiente ejemplo de código accederá al archivo ZIP existente e imprimirá sus entradas en la consola.

using (var zipArchive = new IronZipArchive("Contracts.zip")) //  archivo ziparchive
 {
     //  Obtener lista de entradas
     List<string> names = zipArchive.GetArchiveEntryNames(); 
     foreach (string name in names)
     {
         Console.WriteLine(name); //// el método crea una entrada ziparchiveentry
     }
 }
using (var zipArchive = new IronZipArchive("Contracts.zip")) //  archivo ziparchive
 {
     //  Obtener lista de entradas
     List<string> names = zipArchive.GetArchiveEntryNames(); 
     foreach (string name in names)
     {
         Console.WriteLine(name); //// el método crea una entrada ziparchiveentry
     }
 }
Using zipArchive = New IronZipArchive("Contracts.zip") '  archivo ziparchive
	 '  Obtener lista de entradas
	 Dim names As List(Of String) = zipArchive.GetArchiveEntryNames()
	 For Each name As String In names
		 Console.WriteLine(name) '// el método crea una entrada ziparchiveentry
	 Next name
End Using
VB   C#

El código anterior utiliza IronZIP para comprobar qué hay dentro de un archivo ZIP llamado "Contratos.zip". Crea un objeto IronZipArchive para obtener una lista de nombres de entrada (como los nombres de archivo) del archivo utilizando el método GetArchiveEntryNames. Si el archivo ZIP está protegido por contraseña, puede incluir la contraseña al crear el objeto IronZipArchive. A continuación, el código imprime cada nombre de archivo en la consola.

De este modo, podemos trabajar con entradas específicas dentro de un archivo comprimido.

El resultado es el siguiente:

Cómo Extraer Archivo ZIP a Directorio en C#: Figura 2 - Salida de Entradas de Archivo ZIP

Comprobar si la entrada especificada existe en el archivo ZIP

También podemos comprobar si la entrada especificada existe en el archivo ZIP especificado. El siguiente código muestra la demostración.

using (var zipArchive = new IronZipArchive("Contracts.zip"))
 {
     if(zipArchive.CheckArchiveEntryExist("Contract1.pdf"))
     {
         Console.WriteLine("File Exist");
     }
 }
using (var zipArchive = new IronZipArchive("Contracts.zip"))
 {
     if(zipArchive.CheckArchiveEntryExist("Contract1.pdf"))
     {
         Console.WriteLine("File Exist");
     }
 }
Using zipArchive = New IronZipArchive("Contracts.zip")
	 If zipArchive.CheckArchiveEntryExist("Contract1.pdf") Then
		 Console.WriteLine("File Exist")
	 End If
End Using
VB   C#

El código anterior utiliza la biblioteca IronZIP para comprobar si un archivo llamado "Contratos.zip" contiene una entrada llamada "Contrato1.pdf". Para ello, crea un objeto IronZipArchive para el archivo ZIP. Dentro del bloque de código, hay una sentencia "if" que comprueba si "Contrato1.pdf" existe en el archivo ZIP. Si existe, imprime "File Exist" en la consola. En términos más sencillos, este código te ayuda a confirmar si un archivo específico está dentro de un archivo ZIP, y si lo está, te lo hace saber.

Cómo Extraer Archivo Zip a Directorio en C#: Figura 3 - Comprobar Existencia de Archivo

Eliminar una entrada de un archivo ZIP existente

IronZIP proporciona un método para borrar entradas de un archivo ZIP. El siguiente código borrará un archivo de un ZIP existente.

using (var zipArchive = new IronZipArchive("Contracts.zip"))
{
    zipArchive.DeleteArchiveEntry("Contract1.pdf");
}
using (var zipArchive = new IronZipArchive("Contracts.zip"))
{
    zipArchive.DeleteArchiveEntry("Contract1.pdf");
}
Using zipArchive = New IronZipArchive("Contracts.zip")
	zipArchive.DeleteArchiveEntry("Contract1.pdf")
End Using
VB   C#

El código anterior demuestra cómo utilizar IronZIP para eliminar una entrada de un archivo ZIP llamado "Contratos.zip". Dentro del bloque using, el archivo especificado llamado "Contrato1.pdf" se elimina del archivo. Esta operación garantiza una gestión eficaz de los archivos ZIP en las aplicaciones C#.

Conclusión

En conclusión, IronZIP emerge como una valiosa herramienta para desarrolladores C#, simplificando el manejo de archivos ZIP en varios escenarios. Ya sea extracción de archivos para uso empresarial.

SIGUIENTE >
Cómo comprimir archivos en una carpeta usando C#

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 2,815 Ver licencias >
123