Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
.NET MAUI, o .NET Multi-platform App UI, es un framework para construir aplicaciones multiplataforma. Permite a los desarrolladores crear aplicaciones con una única base de código que se ejecuta en Windows, macOS, iOS, Android y o cualquier otro dispositivo. Similar a react native, pero funciona con C# en lugar de JavaScript.
.NET MAUI permite a los desarrolladores de C# crear sin problemas aplicaciones móviles, aplicaciones de escritorio, desde un único entorno. Microsoft .NET MAUI proporciona documentación y recursos completos para ayudar a los desarrolladores a facilitar y optimizar el proceso de desarrollo de aplicaciones.
En este artículo, exploraremos la integración de IronZIP, una potente librería de archivos ZIP en C#, con .NET MAUI para propósitos de extracción de datos.
Crear un proyecto MAUI de Visual Studio .NET
Instalación de la biblioteca Zip de C# con NuGet
Diseño de la interfaz de la aplicación de extracción de datos
Implementación de los métodos Create Zip y Extract Zip
IronZIP es una completa biblioteca de archivos ZIP en C# diseñada para crear, leer y extraer archivos en .NET. Es compatible con una amplia gama de formatos de archivo, como ZIP, TAR, GZIP y BZIP2. IronZIP es compatible con varias versiones de .NET, como .NET 7, 6, 5, Core, Standard y Framework.
Es multiplataforma, por lo que es adecuado para aplicaciones C#, F# y VB.NET que se ejecuten en Windows, Linux, Mac, iOS, Android, Docker, Azure y AWS.
Entre las principales características de IronZIP se incluyen:
Antes de empezar, asegúrese de que dispone de los siguientes requisitos previos:
1.Visual Studio con la carga de trabajo .NET MAUI instalada.
Abra Visual Studio y haga clic en "Crear un nuevo proyecto".
Selecciona la plantilla de proyecto .NET MAUI App y haz clic en Siguiente.
Configure los ajustes del proyecto, el nombre del proyecto y la ubicación. Haga clic en Siguiente.
En Información adicional, seleccione el .NET Framework adecuado. IronZIP es compatible con la última versión de .NET Framework, por lo que puede elegirla.
Para integrar IronZIP en tu proyecto .NET MAUI, sigue estos pasos:
Abra el Explorador de soluciones desde Vista.
Haga clic con el botón derecho en su proyecto en el Explorador de soluciones.
Seleccione "Administrar paquetes NuGet para la solución".
En la pestaña de búsqueda de NuGet, busque "IronZIP" e instale el paquete para su proyecto.
En el cuadro de diálogo Previsualizar cambios, haga clic en "Aplicar" para realizar los cambios y, a continuación, haga clic en "Aceptar" para aceptar la Licencia IronZIP.
NuGet finalizará la instalación y aparecerá un mensaje de confirmación.
Ahora que todo está instalado y configurado, pasemos a la tarea de extracción de datos creando un Extractor Zip en .NET MAUI.
En esta sección, nos centraremos en diseñar la interfaz de usuario para tu aplicación .NET MAUI. Abra el archivo MainPage.xaml de la carpeta del proyecto y añada el código XAML necesario para crear una interfaz fácil de usar.
Aquí necesitaremos dos botones, uno para crear archivos zip y otro para extraer archivos zip. También se necesitan algunas etiquetas para dar los mensajes adecuados. El siguiente ejemplo de código muestra el código xaml del diseño:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiAppDataExtraction.MainPage">
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="IronZIP - A Zip Library to Create and Extract Zip Content!"
SemanticProperties.HeadingLevel="Level1"
FontSize="32"
HorizontalOptions="Center" />
<Label
Text="Welcome to .NET Multi-platform App UI"
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Welcome to dot net Multi platform App U I"
FontSize="18"
HorizontalOptions="Center" />
<Button
x:Name="OpenFileBtn"
Text="Extract Zip File"
SemanticProperties.Hint="Opens the File Picker"
Clicked="OnSelectFileButtonClicked"
HorizontalOptions="Center" />
<Button
x:Name="OpenFilesBtn"
Text="Create Zip"
SemanticProperties.Hint="Opens the File Picker"
Clicked="OnSelectFilesButtonClicked"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
Ejecute la aplicación y verá la salida como formularios normales de Windows en la pantalla.
Abra el archivo MainPage.xaml.cs y cree el archivo "Crear Zip". Implementar el método OnSelectFilesButtonClicked para permitir abrir el FilePicker y seleccionar múltiples archivos de cualquier tipo para crear un archivo zip.
A continuación, cree una lista con todas las rutas de los archivos seleccionados. Finalmente, páselo al método CreateZip donde IronZIP creará un archivo zip usando todas las rutas de archivo sin problemas en un segundo.
El siguiente ejemplo de código muestra cómo realizar esta tarea.
private async void OnSelectFilesButtonClicked(object sender, EventArgs e)
{
try
{
var status = await Permissions.RequestAsync<Permissions.StorageRead>();
if (status != PermissionStatus.Granted)
{
await DisplayAlert("Alert!", "Storage Access Denied", "Ok");
return;
}
// Select Multiple files of any type
var results = await FilePicker.PickMultipleAsync();
if (results != null)
{
var selectedFilePaths = new List<string>();
foreach (var file in results)
{
// Add File Full Path to the list one by one
selectedFilePaths.Add(file.FullPath);
}
CreateZip(selectedFilePaths);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
private async void OnSelectFilesButtonClicked(object sender, EventArgs e)
{
try
{
var status = await Permissions.RequestAsync<Permissions.StorageRead>();
if (status != PermissionStatus.Granted)
{
await DisplayAlert("Alert!", "Storage Access Denied", "Ok");
return;
}
// Select Multiple files of any type
var results = await FilePicker.PickMultipleAsync();
if (results != null)
{
var selectedFilePaths = new List<string>();
foreach (var file in results)
{
// Add File Full Path to the list one by one
selectedFilePaths.Add(file.FullPath);
}
CreateZip(selectedFilePaths);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
Private Async Sub OnSelectFilesButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
Try
Dim status = Await Permissions.RequestAsync(Of Permissions.StorageRead)()
If status <> PermissionStatus.Granted Then
Await DisplayAlert("Alert!", "Storage Access Denied", "Ok")
Return
End If
' Select Multiple files of any type
Dim results = Await FilePicker.PickMultipleAsync()
If results IsNot Nothing Then
Dim selectedFilePaths = New List(Of String)()
For Each file In results
' Add File Full Path to the list one by one
selectedFilePaths.Add(file.FullPath)
Next file
CreateZip(selectedFilePaths)
End If
Catch ex As Exception
Console.WriteLine($"Error: {ex.Message}")
End Try
End Sub
Ahora, implementemos el método CreateZip, donde la clase IronArchive de IronZIP toma la ruta del archivo zip a crear. Recorriendo en bucle cada ruta de archivo seleccionada, se añade al archivo zip mediante el método Add.
Cuando se añaden los archivos, se muestra un mensaje de confirmación utilizando DisplayAlert.
private async void CreateZip(List<string> selectedFilePaths)
{
var path = "E:\\output.zip";
// Create a Zip
using (var archive = new IronArchive(path))
{
// Add files to the ZIP
foreach (var file in selectedFilePaths)
{
archive.Add(file);
}
}
await DisplayAlert("Congratulations", "All files add to the " + path, "Ok");
}
private async void CreateZip(List<string> selectedFilePaths)
{
var path = "E:\\output.zip";
// Create a Zip
using (var archive = new IronArchive(path))
{
// Add files to the ZIP
foreach (var file in selectedFilePaths)
{
archive.Add(file);
}
}
await DisplayAlert("Congratulations", "All files add to the " + path, "Ok");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Para obtener información más detallada sobre cómo crear, añadir archivos a un archivo zip existente y extraer archivos zip, visite este enlacepágina de tutoriales.
Ahora, crearemos el archivo "Extraer Zip". De nuevo, en el archivo MainPage.xaml.cs, implemente el método OnSelectFileButtonClicked para permitir la apertura del FilePicker y la selección de un único archivo zip para su extracción.
La ruta completa del archivo seleccionado se establece en una variable de cadena y se envía al método ExtractZip donde IronZIP realiza la extracción. El código es el siguiente:
private async void OnSelectFileButtonClicked(object sender, EventArgs e)
{
try
{
var status = await Permissions.RequestAsync<Permissions.StorageRead>();
if (status != PermissionStatus.Granted)
{
await DisplayAlert("Alert!", "Storage Access Denied", "Ok");
return;
}
// Select Multiple files of any type
var result = await FilePicker.PickAsync();
if (result != null)
{
// Add File Full Path to the list one by one
var selectedFile = result.FullPath;
ExtractZip(selectedFile);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
private async void OnSelectFileButtonClicked(object sender, EventArgs e)
{
try
{
var status = await Permissions.RequestAsync<Permissions.StorageRead>();
if (status != PermissionStatus.Granted)
{
await DisplayAlert("Alert!", "Storage Access Denied", "Ok");
return;
}
// Select Multiple files of any type
var result = await FilePicker.PickAsync();
if (result != null)
{
// Add File Full Path to the list one by one
var selectedFile = result.FullPath;
ExtractZip(selectedFile);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
Private Async Sub OnSelectFileButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
Try
Dim status = Await Permissions.RequestAsync(Of Permissions.StorageRead)()
If status <> PermissionStatus.Granted Then
Await DisplayAlert("Alert!", "Storage Access Denied", "Ok")
Return
End If
' Select Multiple files of any type
Dim result = Await FilePicker.PickAsync()
If result IsNot Nothing Then
' Add File Full Path to the list one by one
Dim selectedFile = result.FullPath
ExtractZip(selectedFile)
End If
Catch ex As Exception
Console.WriteLine($"Error: {ex.Message}")
End Try
End Sub
Ahora, vamos a crear el método ExtractZip. En este método, establezca la ruta a la carpeta de salida donde desea extraer los archivos.
Usando el método ExtractArchiveToDirectory de IronZIP, pase la ruta del archivo seleccionado y la ruta de salida. Este método convierte y transfiere sin problemas todos los archivos del zip a la carpeta de salida. Por último, se muestra un mensaje de confirmación cuando la extracción se ha realizado correctamente.
El código es el siguiente:
private async void ExtractZip(string selectedFilePath)
{
var path = "E:\\Extracted Files";
IronArchive.ExtractArchiveToDirectory(selectedFilePath, path);
await DisplayAlert("Congratulations", "All files extracted to the " + path, "Ok");
}
private async void ExtractZip(string selectedFilePath)
{
var path = "E:\\Extracted Files";
IronArchive.ExtractArchiveToDirectory(selectedFilePath, path);
await DisplayAlert("Congratulations", "All files extracted to the " + path, "Ok");
}
Private Async Sub ExtractZip(ByVal selectedFilePath As String)
Dim path = "E:\Extracted Files"
IronArchive.ExtractArchiveToDirectory(selectedFilePath, path)
Await DisplayAlert("Congratulations", "All files extracted to the " & path, "Ok")
End Sub
Tras integrar correctamente el código junto con IronZIP, cree y ejecute la aplicación para realizar tareas de extracción de datos. Pruebe la funcionalidad creando un archivo zip y extrayendo archivos de un archivo zip.
Verifique los resultados comprobando los archivos de salida y extraídos en los directorios especificados.
Intentemos primero crear un archivo zip. Haga clic en el botón Crear Zip y se le presentará un cuadro de diálogo de archivo. Puede elegir entre varios archivos o uno solo para añadirlo al zip.
Haga clic en Abrir y aparecerá un mensaje de confirmación de que los archivos se han añadido correctamente a output.zip.
Si navegamos hasta el archivo output.zip y vemos su contenido, veremos todos los archivos que hemos añadido.
Ahora vamos a extraer un archivo zip. Haga clic en el botón Extraer Zip y aparecerá un cuadro de diálogo Archivo. Elija un archivo zip que desee extraer y haga clic en Abrir.
Una vez realizada la captura de datos del fichero zip y extraídos a la carpeta deseada, muestra el mensaje de confirmación.
Ahora, navega a la carpeta "Extracted Files" y verás los archivos extraídos del zip que elegimos.
En conclusión, la integración de IronZIP con .NET MAUI proporciona una potente solución para crear, leer y extraer archivos en aplicaciones multiplataforma.
El ejemplo proporcionado demuestra cómo usar IronZIP para seleccionar múltiples archivos, generar un archivo zip, y extraer archivos de un archivo zip dentro de .NET MAUI.
Esta combinación de tecnologías ofrece a los desarrolladores una experiencia fluida en la gestión y manipulación de archivos en diversas plataformas.
Para obtener información más detallada y ejemplos de código, visite este enlacedocumentación página.
IronZIP ofrece un**Prueba gratuita. Puede descargar la biblioteca enaquí y pruébalo.
9 productos API .NET para sus documentos de oficina