
SDK de extração de dados .NET MAUI com IronZIP
.NET MAUI, ou .NET Multi-platform App UI, é um framework para construir aplicações multiplataforma. Permite que desenvolvedores criem aplicações com uma única base de código que roda em Windows, macOS, iOS, Android e outros dispositivos. Semelhante ao React Native, mas usa C# ao invés de JavaScript.
.NET MAUI permite que desenvolvedores C# construam aplicações móveis e de desktop sem complicações a partir de um único ambiente. Microsoft .NET MAUI fornece documentação abrangente e recursos para ajudar os desenvolvedores a otimizar o processo de desenvolvimento de aplicações.
Neste artigo, exploraremos a integração do IronZIP, uma poderosa biblioteca C# para criação de arquivos ZIP, com o .NET MAUI para fins de extração de dados.
Como Extrair Dados de Arquivos Zip
- Crie um Projeto Visual Studio .NET MAUI
- Instale a Biblioteca Zip de C# usando NuGet
- Projete a Interface do Aplicativo de Extração de Dados
- Implemente os Métodos Criar Zip e Extrair Zip
- Execute a aplicação e verifique os resultados
Introdução ao IronZIP
IronZIP é uma biblioteca C# abrangente de arquivos ZIP projetada para criar, ler e extrair arquivos no .NET. Suporta uma ampla gama de formatos de arquivo, incluindo ZIP, TAR, GZIP e BZIP2. IronZIP é compatível com várias versões do .NET, como .NET 7, 6, 5, Core, Standard e Framework.
É multiplataforma, o que a torna adequada para aplicações C#, F# e VB.NET executando em Windows, Linux, Mac, iOS, Android, Docker, Azure, e AWS.
Principais características do IronZIP incluem:
- Suporte multiplataforma para vários sistemas operacionais.
- Compatibilidade com diferentes versões do .NET e tipos de projetos.
- Suporte para criar, ler e extrair arquivos ZIP, TAR, GZIP e BZIP2.
- Integração com .NET MAUI para construir aplicações multiplataforma.
Pré-requisitos
Antes de começar, certifique-se de ter os seguintes pré-requisitos:
- Visual Studio com o trabalho do .NET MAUI instalado.
- Biblioteca IronZIP adicionada ao seu projeto .NET MAUI.
Passos para Criar Aplicações .NET MAUI no Visual Studio
- Abra o Visual Studio e clique em "Criar um Novo Projeto".
- Selecione o modelo de projeto .NET MAUI App e clique em Avançar.

- Configure as Configurações do Projeto, Nome do Projeto e Localização. Clique em Avançar.

- Na Informação Adicional, selecione o .NET Framework apropriado. IronZIP suporta a última versão do .NET Framework para que você possa escolher essa.

- Clique em Criar para criar o App .NET MAUI para Extração de Dados Zip usando a biblioteca IronZIP.
Instalar IronZIP
Para integrar o IronZIP ao seu projeto .NET MAUI, siga estes passos:
- Abra o Solution Explorer em Exibir.

- Clique com o botão direito do mouse no seu projeto no Solution Explorer.
- Selecione "Gerenciar Pacotes NuGet para Solução".

- Na aba de navegação do NuGet, busque por "IronZIP" e instale o pacote para o seu projeto.

- Na caixa de diálogo de Pré-visualização de Alterações, clique em "Aplicar" para efetuar as alterações e, em seguida, clique em "Aceitar" para aceitar a Licença do IronZIP.
- O NuGet concluirá a Instalação e uma mensagem de confirmação aparecerá.
Agora, com tudo instalado e configurado, vamos nos mover para a tarefa de extração de dados de criar um Extrator de Zip no .NET MAUI.
Passos para Criar um Extrator de Zip
Passo 1: Projetar a Interface do Aplicativo
Nesta seção, focaremos em projetar a interface do usuário do seu aplicativo .NET MAUI. Abra o arquivo MainPage.xaml na pasta do seu projeto e adicione o código XAML necessário para criar uma interface amigável ao usuário.
Aqui, precisaremos de dois botões, um para criar arquivos zip e outro para extrair arquivos zip. Alguns rótulos também são necessários para fornecer mensagens apropriadas. O exemplo de código a seguir mostra o código XAML do design:
<?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>
Execute o aplicativo, e você verá o resultado como formulários regulares do Windows na tela.

Passo 2: Implementar o Código
1. Criar Zip
Abra o arquivo MainPage.xaml.cs e crie a funcionalidade "Criar Zip". Implemente o método OnSelectFilesButtonClicked para permitir a abertura do FilePicker e selecionar múltiplos arquivos de qualquer tipo para criar um arquivo zip.
Em seguida, crie uma lista de todos os caminhos dos arquivos selecionados. Finalmente, passe isso para o método CreateZip, no qual o IronZIP criará um arquivo zip usando todos os caminhos dos arquivos perfeitamente em um segundo.
O exemplo de código a seguir mostra como realizar esta tarefa.
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 SubEm seguida, implemente o método CreateZip. A classe IronArchive do IronZIP recebe o caminho onde o arquivo zip deve ser criado. Percorrendo cada caminho de arquivo selecionado, eles são adicionados ao arquivo zip pelo método Add.
Quando os arquivos são adicionados, uma mensagem de confirmação é exibida usando 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 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 SubPara mais informações detalhadas sobre como criar, adicionar arquivos a um zip existente e extrair um zip, por favor visite esta página de tutorial.
2. Extrair Zip
Agora, vamos criar a funcionalidade "Extrair Zip". Novamente, no arquivo MainPage.xaml.cs, implemente o método OnSelectFileButtonClicked para permitir a abertura do FilePicker e a seleção de um único arquivo zip para extração.
O caminho completo do arquivo selecionado é definido para uma variável string e enviado para o método ExtractZip, onde o IronZIP realiza a extração. O código é o seguinte:
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 SubEm seguida, crie o método ExtractZip. Neste método, defina o caminho para a pasta de saída onde você deseja extrair os arquivos.
Usando o método ExtractArchiveToDirectory do IronZIP, passe o caminho do arquivo selecionado e o caminho de saída. Este método converte e transfere suavemente todos os arquivos no zip para a pasta de saída. Finalmente, uma mensagem de confirmação é exibida em caso de extração bem-sucedida.
O código é o seguinte:
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 SubPasso 3: Executar Aplicação
Após integrar com sucesso o código juntamente com o IronZIP, compile e execute a aplicação para realizar tarefas de extração de dados. Teste a funcionalidade criando um arquivo zip e extraindo arquivos de um arquivo zip.
Verifique os resultados verificando a saída e os arquivos extraídos nos diretórios especificados.
Passo 4: Verificar Resultados
1. Testando Criar Zip
Vamos primeiro tentar criar um arquivo zip. Clique no botão Criar Zip, e será apresentado a você um diálogo de arquivo. Você pode escolher vários ou um único arquivo para adicionar ao zip.

Clique em Abrir, e uma mensagem de confirmação aparecerá informando que os arquivos foram adicionados com sucesso ao output.zip.

Se navegarmos até o arquivo output.zip e visualizarmos seu conteúdo, veremos todos os arquivos que adicionamos.

2. Testando Extrair Zip
Vamos agora extrair um arquivo zip. Clique no botão Extrair Zip e um diálogo de arquivo aparecerá. Escolha um arquivo zip que você deseja extrair e clique em abrir.

Quando a captura de dados do arquivo zip for concluída e extraída para a pasta desejada, exibirá a mensagem de confirmação.

Agora, navegue até a pasta "Arquivos Extraídos" e você verá os arquivos extraídos do zip que escolhemos.

Conclusão
Em conclusão, integrar o IronZIP com o .NET MAUI oferece uma solução poderosa para criar, ler e extrair arquivos em aplicações multiplataforma.
O exemplo fornecido demonstra como usar o IronZIP para selecionar múltiplos arquivos, gerar um arquivo zip e extrair arquivos de um arquivo zip dentro do .NET MAUI.
Esta combinação de tecnologias oferece aos desenvolvedores uma experiência perfeita em gerenciar e manipular arquivos em várias plataformas.
Para mais informações detalhadas e exemplos de código, por favor visite esta página de documentação.
O IronZIP oferece uma avaliação gratuita. Você pode baixar a biblioteca de aqui e experimentá-la.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.
Artigos relacionados


