Cómo descomprimir archivos en .NET Core
1. Introducción
"Descomprimir" describe el proceso de sacar archivos y carpetas de un archivo ZIP y descomprimirlos. "Unzip" refers to the process of recovering compressed files or directories back to their original condition, so that they can be accessed and used again after being compressed into a ZIP file. Podemos agregar varios tipos de archivos a los archivos zip como imágenes, archivos TXT, etc.
Los usuarios pueden recuperar el contenido de un archivo ZIP mediante la descompresión, que es el proceso de revertir el proceso de compresión. Acceder a archivos o carpetas individuales que han sido empaquetados juntos para una transmisión, almacenamiento o intercambio más efectivo es un uso popular. Después de que se complete el procedimiento de "descomprimir", los archivos tienen su estructura original y pueden ser leídos, cambiados o utilizados según sea necesario por el usuario. En este artículo, vamos a descomprimir archivos en Asp.net core usando la Biblioteca IronZIP Archive.
2. En Asp.net Core, Resumen de descompresión de archivos
- Crear un nuevo proyecto Asp.net Core.
- Instalar la biblioteca IronZIP en el proyecto creado.
- Para descomprimir un archivo, instanciar la clase
IronArchive. - El archivo ZIP puede ser extraído usando la función
ExtractArchiveToDirectory. - Especificar el archivo de destino donde se necesita extraer el archivo descomprimido.
3. Biblioteca IronZIP
Iron Software creó la biblioteca .NET IronZIP, que facilita el manejo y gestión de archivos ZIP en aplicaciones .NET. Ofrece herramientas y características a los programadores, para que puedan interactuar con ZIP de varias maneras. Estos incluyen generar, extraer, comprimir, descomprimir, encriptar y modificar archivos y directorios dentro de los archivos ZIP.
3.1 Características de IronZIP
- Creación de Archivos ZIP: La capacidad para que las aplicaciones .NET produzcan nuevos archivos ZIP desde el principio.
- Extracción y Descompresión: La capacidad para eliminar archivos y directorios de paquetes ZIP preexistentes y descomprimir contenido.
- Compresión: Proporciona herramientas para reducir archivos y carpetas dentro de archivos ZIP para hacerlos más pequeños para el transporte o almacenamiento.
- Protección por contraseña y encriptación: Para proteger el contenido de los archivos ZIP, esta característica ofrece la capacidad de aplicar protección por contraseña y encriptar archivos ZIP.
- Manipulación de Archivos: Permite a los programadores agregar, eliminar, actualizar o de otra manera trabajar con archivos y directorios dentro de paquetes ZIP.
- Compatibilidad: Diseñado para funcionar en varias configuraciones de .NET, compatible con múltiples iteraciones del framework.
- Optimización de Rendimiento: Orientado a maximizar la velocidad para que las aplicaciones .NET puedan manejar grandes archivos ZIP o conjuntos de datos de manera más efectiva.
Cuando se gestionan archivos ZIP para sus aplicaciones, los desarrolladores pueden encontrar que IronZIP es una herramienta útil. Dentro del framework de .NET, ofrece una variedad de características para trabajar con archivos ZIP programáticamente, ofreciendo simplicidad y versatilidad.
Para obtener los detalles más recientes sobre características, capacidades, compatibilidad y cualquier nueva funcionalidad incluida en versiones posteriores, consulte la documentación oficial, notas de lanzamiento o el sitio web de IronZIP, ya que las bibliotecas de software se actualizan y mejoran con el tiempo. Para saber más, haga clic aquí.
3.2 Creación de un nuevo proyecto en Visual Studio
Seleccione la opción Archivo después de iniciar el programa Visual Studio. Elija "nuevo proyecto" y luego "Aplicación Web Asp.Net core".
En el cuadro de texto pertinente, escriba el nombre del proyecto y elija la ubicación del archivo. A continuación, haga clic en el botón Crear y elija la versión de .NET Framework necesaria.
Ahora se generará la estructura de la aplicación elegida por el proyecto de Visual Studio. En este caso, se está utilizando ASP.NET MVC. Por lo tanto, tenemos dos opciones: o utilizar el controlador actual, que le permite agregar el código y construir/ejecutar la aplicación, o crear uno nuevo.
La biblioteca se puede agregar después y probar el código.
4. Descarga del paquete IronZIP
4.1 Uso de Visual Studio
Puede instalar paquetes directamente en su solución utilizando la característica de Administrador de Paquetes NuGet de Visual Studio. Puede utilizar la instantánea abajo para acceder al Administrador de Paquetes NuGet.

Proporciona un cuadro de búsqueda que muestra una lista de paquetes del sitio web de NuGet. La captura de pantalla a continuación nos muestra dónde buscar la frase "IronZIP" en el administrador de paquetes.

En la imagen de arriba, se muestra una lista de términos de búsqueda pertinentes. Se requiere seleccionar la opción requerida para instalar el paquete de solución.
4.2 Uso de la línea de comandos de Visual Studio
En Visual Studio, elija Herramientas > Administrador de Paquetes NuGet para ver la Consola del Administrador de Paquetes.
Introduzca la siguiente línea en la ficha del terminal del administrador de paquetes:
Install-Package IronZip
Al descargar e instalar en el proyecto activo, el paquete está listo para su uso.
4.3 Descarga directa desde el sitio web de NuGet
Usando el tercer método, se puede obtener el paquete NuGet directamente desde el sitio web.
Navegue allí para abrir el enlace.
Seleccione la opción de descarga del paquete en el menú a la derecha.
Haga doble clic en el paquete una vez descargado. Por sí solo, se instalará.
Una vez más, cargue la solución y comience a usarla en el proyecto.
4.4 Descarga directa desde el sitio web de IronZIP
Haga clic en este enlace para obtener el último paquete directamente del sitio web. Una vez descargado, siga los procedimientos adjuntos para agregar el paquete al proyecto.
- Seleccione el proyecto con un clic derecho desde la ventana de solución.
- Seleccione la referencia y navegue por su ubicación una vez que haya sido descargada.
- Haga clic en Aceptar después para agregar la referencia.
4.5 Descomprimir archivos en el núcleo Asp.net
Deberá proporcionar el nombre del archivo y el destino donde desea extraer el archivo para usar IronZIP en C# para extraer un archivo específico de un archivo ZIP.
Código de muestra aquí:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using IronZip;
namespace IronPDF_WebApp.Pages
{
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public IActionResult OnPost()
{
try
{
// Retrieve the uploaded file from the form
var file = Request.Form.Files[0];
// Set the file path where the file will be saved
string filepath = @"C:\temp\uploads\";
// Save the uploaded file to the specified filepath
using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
{
file.CopyToAsync(stream);
}
// Extract the ZIP archive to the specified directory
string extractfile = @"C:\temp\extracted";
IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
}
catch (Exception ex)
{
// Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.");
return RedirectToAction("Error");
}
return RedirectToAction("Get");
}
}
}using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using IronZip;
namespace IronPDF_WebApp.Pages
{
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public IActionResult OnPost()
{
try
{
// Retrieve the uploaded file from the form
var file = Request.Form.Files[0];
// Set the file path where the file will be saved
string filepath = @"C:\temp\uploads\";
// Save the uploaded file to the specified filepath
using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
{
file.CopyToAsync(stream);
}
// Extract the ZIP archive to the specified directory
string extractfile = @"C:\temp\extracted";
IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
}
catch (Exception ex)
{
// Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.");
return RedirectToAction("Error");
}
return RedirectToAction("Get");
}
}
}Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports IronZip
Namespace IronPDF_WebApp.Pages
Public Class IndexModel
Inherits PageModel
Private ReadOnly _logger As ILogger(Of IndexModel)
Public Sub New(ByVal logger As ILogger(Of IndexModel))
_logger = logger
End Sub
Public Function OnPost() As IActionResult
Try
' Retrieve the uploaded file from the form
Dim file = Request.Form.Files(0)
' Set the file path where the file will be saved
Dim filepath As String = "C:\temp\uploads\"
' Save the uploaded file to the specified filepath
Using stream = New FileStream(filepath & file.FileName, FileMode.Create)
file.CopyToAsync(stream)
End Using
' Extract the ZIP archive to the specified directory
Dim extractfile As String = "C:\temp\extracted"
IronZipArchive.ExtractArchiveToDirectory(filepath & file.FileName, extractfile)
Catch ex As Exception
' Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.")
Return RedirectToAction("Error")
End Try
Return RedirectToAction("Get")
End Function
End Class
End NamespaceEn el código de arriba, asegúrese de que el espacio de nombres de IronZIP esté importado. Incluida en la clase IronZipArchive de IronZIP está la función ExtractArchiveToDirectory. Esto nos permite pasar dos parámetros: el sistema de archivos fuente y la ruta del archivo que se descomprimirá. Los archivos ZIP ZIPArchive pueden tener cualquier número de contenido, y el contenido puede ser extraído utilizando y guardado en un directorio especificado por el archivo. La ruta del directorio, que se utiliza como punto de extracción para el contenido del archivo ZIP único, es el único parámetro requerido por el método ExtractArchiveToDirectory.
Para extraer todos los archivos al directorio designado, esta función internamente recorre todos los archivos y directorios dentro del paquete ZIP. Cuando surge una excepción, como cuando falta el archivo ZIP o hay problemas con el procedimiento de extracción, asegúrese de manejarlo cuidadosamente. Las excepciones pueden ser capturadas y manejadas utilizando bloques try-catch. Para actividades de extracción masiva, el método ExtractArchiveToDirectory facilita la extracción al gestionar la extracción de todos los archivos y directorios dentro del archivo ZIP. Los archivos ZIP pueden ser creados con la ayuda del método de extensión IronZIP.
Para leer más sobre la biblioteca IronZIP, haga clic aquí.
5. Conclusión
Los desarrolladores pueden manejar la compresión, extracción y manipulación de archivos ZIP con la ayuda de IronZIP, una biblioteca .NET diseñada específicamente para gestionar archivos ZIP en aplicaciones de C#. Al simplificar procedimientos complejos y hacer que las operaciones de archivos como extraer archivos específicos, extraer archivos en bloque, agregar entradas y modificar archivos existentes sean más simples, IronZIP emplea una API intuitiva.
Con esta biblioteca, los desarrolladores pueden mejorar las capacidades de gestión de archivos sin tener que empezar desde cero en proyectos en C#. Se integra sin esfuerzo. Gracias a su versatilidad, se puede alterar dinámicamente el contenido del ZIP, agregando, cambiando y eliminando archivos para satisfacer una variedad de requisitos de aplicación.
Al tratar con situaciones como archivos ZIP faltantes o dañados, las sólidas características de manejo de excepciones de IronZIP garantizan un flujo de trabajo consistente y facilitan la remediación de errores. Mientras que IronZIP históricamente ha ofrecido una solución confiable para gestionar archivos ZIP en entornos .NET, tenga en cuenta que mi entendimiento puede no reflejar las actualizaciones más recientes. El precio de IronZIP comienza en $799 y viene con una versión gratuita de desarrollador. Para saber más sobre la licencia, podemos referirnos aquí. Para el producto de software Iron, compruebe aquí.
Preguntas Frecuentes
¿Cómo puedo descomprimir archivos en ASP.NET Core?
Puedes descomprimir archivos en ASP.NET Core usando la biblioteca IronZIP. Primero, instala IronZIP a través del Administrador de Paquetes NuGet en Visual Studio, luego usa la clase IronArchive y el método ExtractArchiveToDirectory para extraer archivos de un archivo ZIP a un directorio especificado.
¿Cuáles son las principales características de IronZIP para manejar archivos ZIP?
IronZIP ofrece varias características para manejar archivos ZIP, incluyendo la creación, extracción, compresión, encriptación y manipulación de archivos ZIP. Soporta protección con contraseña y está optimizado para el rendimiento, compatible con varios marcos .NET.
¿Cómo instalo IronZIP en un proyecto C#?
Para instalar IronZIP en un proyecto C#, usa el Administrador de Paquetes NuGet en Visual Studio. Busca 'IronZIP' e instálalo. Alternativamente, usa la Consola del Administrador de Paquetes con el comando Install-Package IronZIP.
¿Puede IronZIP usarse para encriptar archivos ZIP?
Sí, IronZIP puede encriptar archivos ZIP. Incluye herramientas para protección con contraseña y encriptación, asegurando la seguridad de los contenidos dentro de los archivos ZIP.
¿Qué debo hacer si encuentro errores durante la extracción de archivos ZIP en ASP.NET Core?
Si encuentras errores durante la extracción de archivos ZIP, usa las características de manejo de excepciones de IronZIP. Implementa bloques try-catch para manejar excepciones como archivos ZIP faltantes o corruptos.
¿Hay una versión gratuita de IronZIP disponible para desarrolladores?
Sí, IronZIP ofrece una versión gratuita para desarrolladores que te permite explorar sus características sin ningún costo inicial, junto a sus licencias pagadas.
¿Por qué debería usar IronZIP para manejar archivos ZIP en mis proyectos ASP.NET Core?
IronZIP simplifica la gestión de archivos ZIP en proyectos ASP.NET Core al ofrecer una API intuitiva para crear, extraer y modificar archivos ZIP, mejorando las capacidades de gestión de archivos.
¿Cómo maneja IronZIP la extracción de archivos ZIP?
IronZIP maneja la extracción de archivos ZIP usando el método ExtractArchiveToDirectory, que extrae todos los archivos y directorios de un archivo ZIP a una ruta de directorio especificada, gestionando eficientemente cada elemento dentro del paquete ZIP.
¿Cuál es el proceso para crear un nuevo proyecto ASP.NET Core para usar con IronZIP?
Para crear un nuevo proyecto ASP.NET Core para usar con IronZIP, configura un nuevo proyecto en Visual Studio, instala IronZIP a través de NuGet e implementa la clase IronArchive para manejar archivos ZIP con métodos como ExtractArchiveToDirectory.








