USO DE IRONZIP

Cómo abrir un archivo Zip en C#

Actualizado 4 de enero, 2024
Compartir:

ZIP es un formato de sistema de archivos de entrada que admite la compresión de datos sin pérdidas. Un archivo ZIP puede contener uno o varios archivos o directorios que pueden haber sido comprimidos. El formato de archivo ZIP permite varios algoritmos de compresión, aunque DEFLATE es el más común. El formato ZIP fue entonces rápidamente soportado por muchas utilidades de software. Los principales proveedores de sistemas operativos han incluido soporte para archivos ZIP desde hace mucho tiempo. Microsoft incluyó soporte para archivos ZIP desde Windows 98 y el resto siguió su ejemplo.

En este blog, vamos a explorar una forma moderna, fácil y eficiente de abrir archivos comprimidos ZIP o archivos extraídos utilizando IronZIP. Vamos a conocer los archivos ZIP en general y sus ventajas. A continuación veremos las opciones disponibles en el espacio de nombres del sistema para trabajar con el formato de archivo ZIP. A continuación, exploraremos las instrucciones paso a paso para abrir el archivo ZIP, extraer el archivo ZIP a una carpeta temporal, crear un nuevo archivo ZIP y añadir archivos a archivos ZIP existentes.

Ventajas del uso de archivos ZIP en aplicaciones informáticas

  1. Compresión: Esta técnica reduce el tamaño de los archivos/carpetas archivados utilizando varios algoritmos de compresión como Implode, Deflate, Deflate64, bzip2, LZMA, WavPack, PPMd, etc.
  2. Reducción del tiempo de transferencia: Los archivos de menor tamaño se transfieren más rápidamente, sobre todo cuando se envían por Internet. Esto es especialmente ventajoso para los adjuntos de correo electrónico y la carga o descarga de archivos de sitios web.
  3. Consolidación de archivos: Los archivos ZIP te permiten consolidar varios archivos en uno solo, reduciendo el número de archivos que tienes que gestionar. Esto resulta útil para organizar proyectos o distribuir software compuesto por varios archivos.
  4. Contraseña Protección: Muchas utilidades ZIP proporcionan la opción de proteger el archivo con contraseña, añadiendo una capa de seguridad a tus ficheros. Esto resulta útil cuando se desea restringir el acceso al contenido del archivo ZIP.

Crear archivos ZIP y extraer archivos ZIP con IronZIP

Introducción a la biblioteca IronZIP y documentación aquí. En las aplicaciones C#, los archivos ZIP pueden crearse y extraerse de varias formas. El paquete NuGet IronZIP tiene todas las funcionalidades para archivar ficheros en diferentes formatos ZIP, TAR, GZIP, y BZIP2. A continuación se muestran los pasos de ejemplo sobre cómo utilizar IronZIP en la programación de aplicaciones modernas para crear aplicaciones de próxima generación para abrir archivos ZIP, extraer archivos ZIP, crear nuevos archivos ZIP, etc.

Paso 1. Crear aplicación de consola .NET Core

Crear proyecto

.NET puede crearse utilizando Visual Studio. Abra Visual Studio y seleccione Crear proyecto. Aquí puedes ver varias plantillas para crear un proyecto. La forma más sencilla de demostrar o probar el código es crear una aplicación de consola. Seleccionaremos la plantilla de proyecto Console App.

Cómo Abrir un Archivo Zip en C#: Figura 1 - Nuevo Proyecto

Introduzca el nombre del proyecto

En la siguiente ventana, puede introducir el nombre del proyecto, la ubicación del proyecto para almacenarlo en el sistema de archivos y, por último, la ruta a la carpeta de la solución. Puede mantener las carpetas de la solución y del proyecto iguales o tenerlas en carpetas diferentes.

Cómo Abrir un Archivo Zip en C#: Figura 2 - Configurar Proyecto

Seleccione la versión de .NET Framework

El siguiente paso es seleccionar la versión de .NET Framework para el proyecto. Si desea desarrollar en una versión específica entonces especifique la versión que desee, de lo contrario seleccione siempre la última versión estable para crear un proyecto. La última versión puede descargarse del sitio web de Microsoft. A continuación, haga clic en Crear para generar la aplicación de consola.

Cómo Abrir un Archivo Zip en C#: Figura 3 - Marco de destino

Esto creará el proyecto predeterminado a partir de la plantilla y almacenará los archivos del proyecto y de la solución en los directorios especificados. Una vez creado el proyecto, tendrá un aspecto similar al que se muestra a continuación. A veces la clase no se utiliza en el program.cs en las últimas versiones.

using System;
//  Para más información, consulte https://aka.ms/new-console-template
Console.WriteLine("Hello, World!");
namespace MyApp //  Nota: el espacio de nombres real depende del nombre del proyecto.
{
    internal class Program
    {
        static void Main(string [] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
using System;
//  Para más información, consulte https://aka.ms/new-console-template
Console.WriteLine("Hello, World!");
namespace MyApp //  Nota: el espacio de nombres real depende del nombre del proyecto.
{
    internal class Program
    {
        static void Main(string [] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
Imports System
'  Para más información, consulte https://aka.ms/new-console-template
Console.WriteLine("Hello, World!")
Dim MyApp As namespace '  Nota: el espacio de nombres real depende del nombre del proyecto.
If True Then
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	internal class Program
'	{
'		static void Main(string [] args)
'		{
'			Console.WriteLine("Hello World!");
'		}
'	}
End If
VB   C#

Para crear un nuevo fichero ZIP y extraer todos los ficheros del archivo ZIP, podemos utilizar System.IO.Compression de las librerías por defecto. En el código anterior ZipFile.OpenRead y ZipFile.Open Los métodos estáticos se pueden utilizar para abrir archivos ZIP o extraer archivos ZIP.

using System.IO.Compression;  
Console.WriteLine("-----------Zip - Unzip-----------");
static void AddEntry(string filePath, 
System.IO.Compression.ZipArchive zipArchive)
{
    var file = Path.GetFileName(filePath); //  obtener el nombre del fichero var
    zipArchive.CreateEntryFromFile(filePath, file);
}
var zip = "myFile.zip";
using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(zip,     ZipArchiveMode.Create))
{
    AddEntry(file1, archive);
    AddEntry(file2, archive);
}
var dirToExtract = "extract";
if (Directory.Exists(dirToExtract) == false)
{
    Directory.CreateDirectory(dirToExtract);
}
ZipFile.ExtractToDirectory(zip, dirToExtract); //archivo extraído
using System.IO.Compression;  
Console.WriteLine("-----------Zip - Unzip-----------");
static void AddEntry(string filePath, 
System.IO.Compression.ZipArchive zipArchive)
{
    var file = Path.GetFileName(filePath); //  obtener el nombre del fichero var
    zipArchive.CreateEntryFromFile(filePath, file);
}
var zip = "myFile.zip";
using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(zip,     ZipArchiveMode.Create))
{
    AddEntry(file1, archive);
    AddEntry(file2, archive);
}
var dirToExtract = "extract";
if (Directory.Exists(dirToExtract) == false)
{
    Directory.CreateDirectory(dirToExtract);
}
ZipFile.ExtractToDirectory(zip, dirToExtract); //archivo extraído
Imports System.IO.Compression
Console.WriteLine("-----------Zip - Unzip-----------")
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'static void AddEntry(string filePath, System.IO.Compression.ZipArchive zipArchive)
'{
'	var file = Path.GetFileName(filePath); '  obtener el nombre del fichero var
'	zipArchive.CreateEntryFromFile(filePath, file);
'}
Dim zip = "myFile.zip"
Using archive As System.IO.Compression.ZipArchive = ZipFile.OpenRead(zip, ZipArchiveMode.Create)
	AddEntry(file1, archive)
	AddEntry(file2, archive)
End Using
Dim dirToExtract = "extract"
If Directory.Exists(dirToExtract) = False Then
	Directory.CreateDirectory(dirToExtract)
End If
ZipFile.ExtractToDirectory(zip, dirToExtract) 'archivo extraído
VB   C#

En el código anterior, tenemos un archivo ZIP llamado miArchivo.zip, y utilizamos el espacio de nombres del sistema. El método OpenRead se utiliza para abrir el archivo ZIP en el modo especificado. También se puede utilizar para crear nuevos archivos ZIP. Una vez abierto podemos añadir una nueva entrada de archivo usando el método AddEntry y luego ExtractToDirectory extrae los ficheros del archivo ZIP o los ficheros seleccionados al directorio especificado. El directorio se comprueba si existe. Si no existe, se crea un directorio utilizando Directory.CreateDirectory. dirToExtract es la ruta del directorio para extraer los archivos ZIP. La última línea del código ZipFile.ExtractToDirectory(zip, dirToExtract) extrae un archivo ZIP. Todos los archivos se guardan en la ruta del directorio.

Paso 2. Instalación de IronZIP Instalación de IronZIP mediante el gestor de paquetes NuGet

Abra el Gestor de proyectos desde Visual Studio y busque el paquete IronZIP. A continuación, seleccione la última versión y haga clic en Instalar. Puede cambiar la versión a instalar desde el desplegable. A continuación, haga clic en Instalar.

Cómo abrir un archivo Zip en C#: Figura 4 - Gestor de paquetes NuGet

Crear un archivo ZIP y añadir ficheros con IronZIP

Cómo Abrir un Archivo Zip en C#: Figura 5 - IronZIP

IronZIP es una biblioteca de compresión y descompresión de archivos desarrollada por Iron Software. Además del ampliamente utilizado formato ZIP, también puede manejar TAR, GZIP y BZIP2.

IronZIP es una biblioteca de archivos ZIP en C# que prioriza la precisión, la facilidad de uso y la velocidad. La sencilla API permite a los desarrolladores añadir fácilmente funciones de archivo a los modernos proyectos .NET en cuestión de minutos.

IronZIP tiene muchas ventajas en comparación con la librería System.Io.Compression. Puede especificar el ratio de compresión que desee durante la compresión y también utilizar diferentes algoritmos de compresión ZIP, TAR, GZIP, BZIP2. También es compatible con plataformas móviles, web y de escritorio y con varias versiones de .NET.

Crear un archivo ZIP y añadir ficheros con IronZIP

IronZIP tiene la clase IronArchive que puede ser usada para crear archivos ZIP, y extraer archivos ZIP y también soporta la creación de archivos TAR, GZIP, y BZIP2 usando una sola librería. A continuación se muestra el código para crear un archivo ZIP. la clase IronArchive crea/abre archivos ZIP y luego se utiliza el método archive.Add para añadir entradas de archivos al archivo como se muestra a continuación.

//  configuración
var archivePath= "ironZip.zip";
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}
//  archivo zip
using (var archive = new IronZipArchive(9))
{
    //  Añadir archivos al zip 
    archive.Add(file1);
    archive.Add(file2);
    archive.SaveAs(archivePath);
}
//  configuración
var archivePath= "ironZip.zip";
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}
//  archivo zip
using (var archive = new IronZipArchive(9))
{
    //  Añadir archivos al zip 
    archive.Add(file1);
    archive.Add(file2);
    archive.SaveAs(archivePath);
}
'  configuración
Dim archivePath= "ironZip.zip"
If File.Exists(archivePath) Then
	File.Delete(archivePath)
End If
'  archivo zip
Using archive = New IronZipArchive(9)
	'  Añadir archivos al zip 
	archive.Add(file1)
	archive.Add(file2)
	archive.SaveAs(archivePath)
End Using
VB   C#

El código fuente inicial tiene la configuración necesaria para especificar el nombre del archivo ZIP y comprobar si el directorio especificado existe. A continuación, archivamos los ficheros para crear un fichero ZIP utilizando el método Add. El segundo parámetro del parámetro de compresión es 1 para menor y 9 para mayor. Los archivos txt pueden comprimirse al máximo usando 9 sin pérdida y los archivos de imagen pueden usar una compresión menor para evitar la pérdida de datos.

Abra el archivo ZIP con IronZIP

La clase IronArchive también se puede utilizar para extraer los ficheros del archivo ZIP. Todos los archivos se extraen utilizando IronArchive.ExtractArchiveToDirectory que ayuda a extraer todos los archivos a directorios específicos como a continuación.

var extractionPath = "IronZipFiles";
//  extraer archivos de zip
if (Directory.Exists(extractionPath) == false)
{
    Directory.CreateDirectory(extractionPath);
}
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath);
var extractionPath = "IronZipFiles";
//  extraer archivos de zip
if (Directory.Exists(extractionPath) == false)
{
    Directory.CreateDirectory(extractionPath);
}
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath);
Dim extractionPath = "IronZipFiles"
'  extraer archivos de zip
If Directory.Exists(extractionPath) = False Then
	Directory.CreateDirectory(extractionPath)
End If
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath)
VB   C#

El código anterior extrae archivos ZIP a un directorio. El código comprueba si el directorio existe y, a continuación, extrae el archivo ZIP al directorio especificado.

Licencias (prueba gratuita disponible)

Para que el código anterior funcione se necesita una clave de licencia. Esta clave debe colocarse en appsettings.json

"IronZip.LicenseKey": "your lincese key"
"IronZip.LicenseKey": "your lincese key"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'"IronZip.LicenseKey": "your lincese key"
VB   C#

Los desarrolladores disponen de una licencia de prueba para registrarse. aquí y sí, no se requiere tarjeta de crédito para una licencia de prueba. Uno puede proporcionar el ID de correo electrónico y registrarse para una prueba gratuita.

Añadir archivos a un archivo ZIP existente

Utilice el método estático FromFile de IronZIP para abrir un archivo existente. Este método también requiere especificar el nombre del nuevo archivo que se creará como salida.

//añadir al archivo existente
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";
using (var file = IronArchive.FromFile(archivePath, archivePlusPath))
{
    //  Añadir archivos
    file.Add(file3);
}
//añadir al archivo existente
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";
using (var file = IronArchive.FromFile(archivePath, archivePlusPath))
{
    //  Añadir archivos
    file.Add(file3);
}
'añadir al archivo existente
Const file3 As String = ".\image3.png"
Dim archivePlusPath = "ironZipPlus.zip"
Using file = IronArchive.FromFile(archivePath, archivePlusPath)
	'  Añadir archivos
	file.Add(file3)
End Using
VB   C#

El código utiliza el método estático void IronArchive.FromFile para abrir el archivo ZIP existente y luego añadir el nuevo archivo como una entrada de archivo. Una vez dispuesto el archivo, éste se guarda correctamente.

Actualizaciones

La biblioteca IronZIP se actualiza constantemente en función de los comentarios de los clientes/usuarios. aquí.

Conclusión

En conclusión, la programación de archivos ZIP es una habilidad esencial para el desarrollo de aplicaciones modernas en las que los costes de almacenamiento y transferencia de datos corren a cargo de los proveedores de alojamiento en la nube. Conocer esta habilidad puede ayudar a los programadores a reducir el coste de la aplicación y mejorar su rendimiento.

Siguiendo los pasos de instalación y explorando los ejemplos de código proporcionados, los desarrolladores pueden aprovechar rápidamente la potencia de IronZIP para crear nuevos archivos y gestionar tareas de compresión y descompresión con facilidad. A medida que más y más aplicaciones se modernizan y se trasladan a la nube, tener una biblioteca ZIP fiable como IronZIP dota a los desarrolladores de C# de las herramientas necesarias para satisfacer las exigencias del desarrollo de aplicaciones modernas. Así pues, aprovecha el poder de IronZIP y descubra nuevas posibilidades para trabajar con archivos ZIP en sus aplicaciones C#.

IronZIP ofrece un amplio apoyo a sus desarrolladores. Para saber más sobre cómo IronZIP para trabajos en C# visite aquí. IronZIP ofrece una licencia de prueba gratuita que es una gran oportunidad para conocer IronZIP y sus características.

Iron Software tiene otras bibliotecas, explóralas para adquirir más conocimientos y actualizar tus habilidades para programar/desarrollar aplicaciones modernas.

< ANTERIOR
Cómo descomprimir archivos en .NET Core
SIGUIENTE >
Cómo crear un archivo Zip en C# .NET Core

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

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