
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. "Descomprimir" se refiere al proceso de recuperar archivos o directorios comprimidos a su estado original, para que puedan ser accedidos y utilizados nuevamente después de haber sido comprimidos en un archivo ZIP. 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, instancie la clase
IronArchive. - El archivo ZIP puede ser extraído utilizando 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:
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");
}
}
}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. Incluido 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 cantidad de contenidos, y los contenidos pueden ser extraídos usando esto y guardados en un directorio especificado por el archivo. La ruta del directorio, que se utiliza como punto de extracción para los contenidos del único archivo ZIP, 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 gestionando 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. Los precios de IronZIP comienzan en $999 e incluyen una versión gratuita para desarrolladores. Para saber más sobre la licencia, podemos referirnos aquí. Para el producto de Iron Software, chequea aquí.

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


