Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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.
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.
.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.
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.
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.
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
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
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.
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.
Crear un archivo ZIP y añadir ficheros con 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.
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
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.
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)
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.
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"
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.
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
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.
La biblioteca IronZIP se actualiza constantemente en función de los comentarios de los clientes/usuarios. aquí.
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.
9 productos API .NET para sus documentos de oficina