Saltar al pie de página
USANDO IRONZIP

SDK de extracción de datos .NET MAUI con IronZIP

.NET MAUI, o .NET Multi-platform App UI, es un marco de trabajo para crear aplicaciones multiplataforma. Permite a los desarrolladores crear aplicaciones con una única base de código que se ejecuta en Windows, macOS, iOS, Android y otros dispositivos. Similar a React Native, pero utiliza C# en lugar de JavaScript.

.NET MAUI permite a los desarrolladores de C# crear aplicaciones móviles y aplicaciones de escritorio de manera sencilla desde un solo entorno. Microsoft .NET MAUI proporciona una documentación y recursos completos para ayudar a los desarrolladores a agilizar y optimizar el proceso de desarrollo de aplicaciones.

En este artículo, exploraremos la integración de IronZIP, una poderosa biblioteca de archivos ZIP en C#, con .NET MAUI para propósitos de extracción de datos.

Cómo extraer datos de archivos ZIP

  1. Crear un proyecto de Visual Studio .NET MAUI
  2. Instalar la biblioteca Zip de C# usando NuGet
  3. Diseñar la interfaz de la aplicación de extracción de datos
  4. Implementar métodos para crear y extraer zip
  5. Ejecutar la aplicación y verificar los resultados

Introducción a IronZIP

IronZIP es una biblioteca completa de archivos ZIP de C# diseñada para crear, leer y extraer archivos en .NET. Soporta una amplia gama de formatos de archivo, incluidos ZIP, TAR, GZIP y BZIP2. IronZIP es compatible con varias versiones de .NET, como .NET 7, 6, 5, Core, Standard y Framework.

Es multiplataforma, lo que lo hace adecuado para aplicaciones en C#, F# y VB.NET que se ejecutan en Windows, Linux, Mac, iOS, Android, Docker, Azure y AWS.

Las características clave de IronZIP incluyen:

  • Soporte multiplataforma para varios sistemas operativos.
  • Compatibilidad con diferentes versiones de .NET y tipos de proyectos.
  • Soporte para crear, leer y extraer archivos ZIP, TAR, GZIP y BZIP2.
  • Integración con .NET MAUI para crear aplicaciones multiplataforma.

Requisitos previos

Antes de comenzar, asegúrese de tener los siguientes requisitos previos:

  1. Visual Studio con la carga de trabajo de .NET MAUI instalada.
  2. Biblioteca IronZIP añadida a su proyecto .NET MAUI.

Pasos para crear una aplicación .NET MAUI en Visual Studio

  1. Abra Visual Studio y haga clic en 'Crear un nuevo proyecto.'
  2. Seleccione la plantilla de proyecto de aplicación .NET MAUI y haga clic en Siguiente.

.NET MAUI Data Extraction SDK (Developer Tutorial): Figure 1

  1. Configure los ajustes del proyecto, el nombre del proyecto y la ubicación. Haz clic en Siguiente.

.NET MAUI Data Extraction SDK (Developer Tutorial): Figure 2

  1. Desde Información adicional, seleccione el marco de .NET adecuado. IronZIP soporta la última versión de .NET Framework, así que puede elegir esa.

.NET MAUI Data Extraction SDK (Developer Tutorial): Figure 3

  1. Haga clic en Crear para crear la aplicación .NET MAUI para la extracción de datos zip usando la biblioteca IronZIP.

Instalar IronZIP

Para integrar IronZIP en su proyecto .NET MAUI, siga estos pasos:

  1. Abra el Explorador de Soluciones desde la Vista.

.NET MAUI Data Extraction SDK (Developer Tutorial): Figure 4

  1. Haga clic derecho en su proyecto en el Explorador de Soluciones.
  2. Seleccione 'Administrar paquetes NuGet para la solución.'

.NET MAUI Data Extraction SDK (Developer Tutorial): Figure 5

  1. En la pestaña de búsqueda de NuGet, busque 'IronZIP' e instale el paquete para su proyecto.

.NET MAUI Data Extraction SDK (Developer Tutorial): Figure 6

  1. En el cuadro de diálogo de Cambios de Vista Previa, haga clic en 'Aplicar' para hacer cambios y luego en 'Aceptar' para aceptar la licencia de IronZIP.
  2. NuGet terminará la instalación y aparecerá un mensaje de confirmación.

Ahora, con todo instalado y configurado, pasemos a la tarea de extracción de datos para crear un extractor de zip en .NET MAUI.

Pasos para crear un extractor Zip

Paso 1: Diseñar la interfaz de la aplicación

En esta sección, nos enfocaremos en diseñar la interfaz de usuario para su aplicación .NET MAUI. Abra el archivo MainPage.xaml en la carpeta de su proyecto y añada el código XAML necesario para crear una interfaz amigable para el usuario.

Aquí, necesitaremos dos botones, uno para crear archivos zip y otro para extraer archivos zip. También se necesitan algunas etiquetas para proporcionar mensajes apropiados. 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>
<?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>
XML

Ejecute la aplicación, y verá la salida como formularios regulares de Windows en la pantalla.

.NET MAUI Data Extraction SDK (Tutorial para Desarrolladores): Figura 7

Paso 2: Implementar el código

1. Crear Zip

Implemente el método OnSelectFilesButtonClicked para permitir abrir el FilePicker y seleccionar múltiples archivos de cualquier tipo para crear un archivo zip. Implemente el método OnSelectFilesButtonClicked para permitir abrir el FilePicker y seleccionar múltiples archivos de cualquier tipo para crear un archivo zip.

Páselo al método CreateZip; IronZIP creará el zip con las rutas seleccionadas. Finalmente, pásalo al método CreateZip, donde IronZIP creará un archivo zip utilizando todas las rutas de archivo sin problemas en menos de un segundo.

A continuación, implemente el método CreateZip.

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
$vbLabelText   $csharpLabel

La clase IronArchive de IronZIP toma la ruta donde se debe crear el archivo zip. Recorriendo cada ruta de archivo seleccionada, se añaden al archivo zip mediante el método Add. Cuando los archivos son añadidos, se muestra un mensaje de confirmación usando DisplayAlert.

Se mostrará un mensaje de confirmación con DisplayAlert al añadir archivos.

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 added to " + 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 added to " + path, "Ok");
}
Private Async Sub CreateZip(ByVal selectedFilePaths As List(Of String))
	Dim path = "E:\output.zip"
	' Create a Zip
	Using archive = New IronArchive(path)
		' Add files to the ZIP
		For Each file In selectedFilePaths
			archive.Add(file)
		Next file
	End Using
	Await DisplayAlert("Congratulations", "All files added to " & path, "Ok")
End Sub
$vbLabelText   $csharpLabel

Para obtener información más detallada sobre cómo crear, agregar archivos a un zip existente y extraer un zip, visita esta página de tutoriales.

2. Extraer Zip

Ahora, implementemos el Extract Zip... La ruta completa del archivo seleccionado se configura en una variable de cadena y se envía al método ExtractZip, donde IronZIP realiza la extracción.

A continuación, crea el método ExtractZip. 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 a single file 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 a single file 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 a single file 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
$vbLabelText   $csharpLabel

A continuación, cree el método ExtractZip. Usa el método ExtractArchiveToDirectory de IronZIP con la ruta del archivo y la de salida.

Usando el método ExtractArchiveToDirectory de IronZIP, pasa la ruta del archivo seleccionado y la ruta de salida. Finalmente, se muestra un mensaje de confirmación en caso de extracción exitosa. ### Paso 3: Ejecutar la aplicación

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 " + path, "Ok");
}
private async void ExtractZip(string selectedFilePath)
{
    var path = "E:\\Extracted Files";
    IronArchive.ExtractArchiveToDirectory(selectedFilePath, path);
    await DisplayAlert("Congratulations", "All files extracted to " + 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 " & path, "Ok")
End Sub
$vbLabelText   $csharpLabel

Paso 3: Ejecutar la aplicación

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.

Paso 4: Verificar resultados

Paso 4: Verificar resultados

1. Prueba de creación de Zip

Puede elegir múltiples o un solo archivo para añadir al zip. Seleccione uno o varios archivos para agregar al zip.

.NET MAUI Data Extraction SDK (Tutorial para desarrolladores): Figura 8

2. Prueba de extraer zip

.NET MAUI Data Extraction SDK (Tutorial para desarrolladores): Figura 9

Elija un archivo zip que desea extraer y haga clic en abrir.

.NET MAUI Data Extraction SDK (Tutorial para desarrolladores): Figura 10

2. Prueba de extracción de Zip

Navegue a 'Extracted Files' para ver los archivos extraídos del zip. Integrar IronZIP con .NET MAUI ofrece una solución potente para manejar archivos en aplicaciones multiplataforma.

.NET MAUI Data Extraction SDK (Tutorial para desarrolladores): Figura 11

Para obtener más información detallada y ejemplos de código, visite esta página de documentación.

IronZIP ofrece una prueba gratuita.

Puede descargar la biblioteca desde aquí y probarla.

SDK de extracción de datos de MAUI .NET (Tutorial para desarrolladores): Figura 13

Conclusión

En conclusión, la integración de IronZIP con .NET MAUI proporciona una solución poderosa para crear, leer y extraer archivos en aplicaciones multiplataforma.

El ejemplo proporcionado demuestra cómo utilizar IronZIP para seleccionar varios 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 perfecta en la gestión y manipulación de archivos en diversas plataformas.

Para obtener información más detallada y ejemplos de código, visita esta página de documentación .

IronZIP ofrece una prueba gratuita . Puedes descargar la biblioteca desde aquí y probarla.

Preguntas Frecuentes

¿Cómo puedo integrar una biblioteca ZIP con un proyecto .NET MAUI?

Para integrar una biblioteca ZIP como IronZIP con un proyecto .NET MAUI, cree un nuevo proyecto .NET MAUI en Visual Studio, instale la biblioteca IronZIP a través de NuGet e implemente las funcionalidades de archivos ZIP utilizando los ejemplos de código proporcionados.

¿Cuáles son los beneficios de usar una biblioteca ZIP en una aplicación .NET MAUI?

Utilizar una biblioteca ZIP como IronZIP en una aplicación .NET MAUI permite una compresión y extracción de datos eficientes, soporta múltiples formatos de archivo y es compatible en varias plataformas y versiones de .NET.

¿Puedo usar una biblioteca ZIP para aplicaciones multiplataforma?

Sí, puede usar IronZIP para aplicaciones multiplataforma. Soporta aplicaciones C#, F# y VB.NET en Windows, Linux, Mac, iOS y Android.

¿Cómo creo un archivo ZIP en una aplicación .NET MAUI?

En una aplicación .NET MAUI, puede crear un archivo ZIP usando la biblioteca IronZIP. Implemente el método OnSelectFilesButtonClicked para permitir la selección de archivos, y use la clase IronArchive para agregar archivos a un archivo ZIP con el método CreateZip.

¿Cómo puedo extraer archivos de un archivo ZIP en un proyecto .NET MAUI?

Para extraer archivos de un archivo ZIP en un proyecto .NET MAUI, use el método ExtractArchiveToDirectory de IronZIP. Primero, implemente el método OnSelectFileButtonClicked para seleccionar un archivo ZIP, luego extraiga su contenido a un directorio especificado.

¿Qué formatos de archivo soporta IronZIP?

IronZIP soporta una variedad de formatos de archivo que incluyen ZIP, TAR, GZIP y BZIP2, lo que lo convierte en una opción versátil para manejar diferentes tipos de archivos comprimidos.

¿Es IronZIP compatible con diferentes versiones de .NET?

Sí, IronZIP es compatible con varias versiones de .NET, como .NET 7, 6, 5, Core, Standard y Framework, proporcionando flexibilidad para los desarrolladores que trabajan con diferentes entornos .NET.

¿Cuáles son los requisitos previos para implementar una biblioteca ZIP en .NET MAUI?

Para implementar una biblioteca ZIP como IronZIP en .NET MAUI, asegúrese de tener Visual Studio con la carga de trabajo .NET MAUI instalada, y que la biblioteca IronZIP se agregue a su proyecto a través de NuGet.

¿Cómo puedo mejorar una aplicación .NET MAUI con funcionalidades ZIP?

Mejore una aplicación .NET MAUI integrando IronZIP para gestionar la creación y extracción de archivos ZIP, proporcionando a los usuarios capacidades robustas de compresión y descompresión de datos.

¿Dónde puedo encontrar más información sobre el uso de bibliotecas ZIP en .NET MAUI?

Para obtener información más detallada y ejemplos de código, puede visitar la página de documentación de IronZIP, que ofrece una guía completa sobre la integración y el uso de funcionalidades ZIP en proyectos .NET MAUI.

Curtis Chau
Escritor Técnico

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 ...

Leer más