SDK do wyodrębniania danych .NET MAUI z IronZIP
.NET MAUI, czyli .NET Multi-platform App UI, to framework do tworzenia aplikacji wielopłatformowych. Pozwala to programistom tworzyć aplikacje z jednym kodem źródłowym, które działają na Windows, macOS, iOS, Android i innych urządzeniach. Podobne do React Native, ale wykorzystuje C# zamiast JavaScript.
.NET MAUI pozwala programistom C# tworzyć bezproblemowe aplikacje mobilne i aplikacje desktopowe z jednego środowiska. Microsoft .NET MAUI zapewnia obszerną dokumentację i zasoby, które pomagają programistom usprawnić i zoptymalizować proces tworzenia aplikacji.
W tym artykułe zbadamy integrację IronZIP, potężnej biblioteki archiwów ZIP w C#, z .NET MAUI w celu wyodrębniania danych.
Jak wyodrębnić dane z archiwów ZIP
- Utwórz projekt Visual Studio .NET MAUI
- Zainstaluj bibliotekę C# ZIP za pomocą NuGet
- Zaprojektuj interfejs aplikacji do ekstrakcji danych
- Zaimplementuj metody Create ZIP a Extract ZIP
- Uruchom aplikację i sprawdź wyniki
Wprowadzenie do IronZIP
IronZIP to kompleksowa biblioteka archiwizacji ZIP w języku C#, zaprojektowana do tworzenia, odczytywania i rozpakowywania archiwów w środowisku .NET. Obsługuje szeroki zakres formatów archiwów, w tym ZIP, TAR, GZIP i BZIP2. IronZIP jest kompatybilny z różnymi wersjami .NET, takimi jak .NET 7, 6, 5, Core, Standard i Framework.
Jest to rozwiązanie wielopłatformowe, dzięki czemu nadaje się do aplikacji C#, F# i VB.NET działających w systemach Windows, Linux, Mac, iOS, Android, Docker, Azure i AWS.
Najważniejsze funkcje IronZIP to:
- Obsługa wielu platform dla różnych systemów operacyjnych.
- Kompatybilność z różnymi wersjami .NET i typami projektów.
- Obsługa tworzenia, odczytu i wyodrębniania archiwów ZIP, TAR, GZIP i BZIP2.
- Integracja z .NET MAUI do tworzenia aplikacji wielopłatformowych.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że spełniasz następujące wymagania wstępne:
- Visual Studio z zainstalowanym środowiskiem .NET MAUI.
- Biblioteka IronZIP dodana do projektu .NET MAUI.
Kroki tworzenia aplikacji .NET MAUI w Visual Studio
- Otwórz Visual Studio i kliknij "Utwórz nowy projekt".
-
Wybierz szablon projektu aplikacji .NET MAUI i kliknij Dalej.

-
Skonfiguruj ustawienia projektu, nazwę projektu i lokalizację. Kliknij Dalej.

-
W sekcji "Dodatkowe informacje" wybierz odpowiednią platformę .NET Framework. IronZIP obsługuje najnowszą wersję .NET Framework, więc można ją wybrać.

- Kliknij Utwórz, aby utworzyć aplikację .NET MAUI do wyodrębniania danych z plików ZIP przy użyciu biblioteki IronZIP.
Zainstaluj IronZIP
Aby zintegrować IronZIP z projektem .NET MAUI, wykonaj następujące kroki:
-
Otwórz Eksplorator rozwiązań z menu Widok.

- Kliknij prawym przyciskiem myszy swój projekt w Eksploratorze rozwiązań.
-
Wybierz opcję "Zarządzaj pakietami NuGet dla rozwiązania".

-
W zakładce przeglądania NuGet wyszukaj "IronZIP" i zainstaluj pakiet dla swojego projektu.

- W oknie dialogowym Podgląd zmian kliknij "Zastosuj", aby wprowadzić zmiany, a następnie kliknij "Akceptuj", aby zaakceptować licencję IronZIP.
- NuGet zakończy instalację i pojawi się komunikat potwierdzający.
Teraz, gdy wszystko jest już zainstalowane i skonfigurowane, przejdźmy do zadania ekstrakcji danych polegającego na stworzeniu programu do rozpakowywania plików ZIP w .NET MAUI.
Kroki tworzenia programu do rozpakowywania plików ZIP
Krok 1: Projekt interfejsu aplikacji
W tej sekcji skupimy się na projektowaniu interfejsu użytkownika dla aplikacji .NET MAUI. Otwórz plik MainPage.xaml w folderze projektu i dodaj niezbędny kod XAML, aby stworzyć przyjazny dla użytkownika interfejs.
W tym przypadku potrzebujemy dwóch przycisków: jednego do tworzenia plików ZIP, a drugiego do rozpakowywania plików ZIP. Konieczne jest również przetłumaczenie kilku etykiet w celu zapewnienia odpowiednich komunikatów. Poniższy przykład kodu przedstawia kod XAML projektu:
<?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>
Uruchom aplikację, a na ekranie zobaczysz wynik w postaci standardowych formularzy Windows.

Krok 2: Wdrożenie kodu
1. Utwórz plik ZIP
Otwórz plik MainPage.xaml.cs i utwórz funkcję "Create ZIP". Zaimplementuj metodę OnSelectFilesButtonClicked, aby umożliwić otwarcie okna FilePicker i wybranie wielu plików dowolnego typu w celu utworzenia pliku ZIP.
Następnie utwórz listę wszystkich ścieżek z wybranych plików. Na koniec należy przekazać go do metody CreateZip, gdzie IronZIP w ciągu sekundy płynnie utworzy plik ZIP, wykorzystując wszystkie ścieżki do plików.
Poniższy przykład kodu pokazuje, jak zrealizować to zadanie.
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
Następnie zaimplementuj metodę CreateZip. Klasa IronArchive w IronZIP pobiera ścieżkę, w której ma zostać utworzony plik ZIP. Przechodząc przez każdą wybraną ścieżkę pliku, są one dodawane do pliku ZIP za pomocą metody Add.
Po dodaniu plików wyświetlany jest komunikat potwierdzający za pomocą 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 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
Aby uzyskać bardziej szczegółowe informacje na temat tworzenia, dodawania plików do istniejącego pliku ZIP oraz rozpakowywania pliku ZIP, odwiedź tę stronę z samouczkiem.
2. Wyodrębnij plik ZIP
Teraz stworzymy funkcję "Extract ZIP". Ponownie, w pliku MainPage.xaml.cs zaimplementuj metodę OnSelectFileButtonClicked, aby umożliwić otwarcie okna FilePicker i wybranie pojedynczego pliku ZIP do wyodrębnienia.
Pełna ścieżka wybranego pliku jest zapisywana w zmiennej typu string i przekazywana do metody ExtractZip, gdzie IronZIP przeprowadza ekstrakcję. Kod wygląda następująco:
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
Następnie utwórz metodę ExtractZip. W tej metodzie należy ustawić ścieżkę do folderu wyjściowego, do którego chcesz wyodrębnić pliki.
Korzystając z metody ExtractArchiveToDirectory biblioteki IronZIP, należy przekazać wybraną ścieżkę do pliku oraz ścieżkę wyjściową. Ta metoda płynnie konwertuje i przenosi wszystkie pliki z archiwum ZIP do folderu wyjściowego. Na koniec, po pomyślnym wyodrębnieniu danych wyświetlany jest komunikat potwierdzający.
Kod wygląda następująco:
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
Krok 3: Uruchom aplikację
Po pomyślnym zintegrowaniu kodu z IronZIP należy skompilować i uruchomić aplikację w celu wykonania zadań związanych z ekstrakcją danych. Sprawdź działanie, tworząc plik ZIP i wyodrębniając pliki z pliku ZIP.
Sprawdź wyniki, przeglądając pliki wyjściowe i wyodrębnione w określonych katalogach.
Krok 4: Sprawdź wyniki
1. Testowanie Utwórz plik ZIP
Spróbujmy najpierw utworzyć plik ZIP. Kliknij przycisk Utwórz plik ZIP, a pojawi się okno dialogowe plików. Możesz wybrać jeden lub wiele plików do dodania do pliku ZIP.

Kliknij Otwórz, a pojawi się komunikat potwierdzający, że pliki zostały pomyślnie dodane do pliku output.zip.

Jeśli przejdziemy do pliku output.zip i wyświetlimy jego zawartość, zobaczymy wszystkie pliki, które dodaliśmy.

2. Testowanie Wyodrębnij plik ZIP
Wyodrębnijmy teraz plik ZIP. Kliknij przycisk Wyodrębnij ZIP, a pojawi się okno dialogowe Plik. Wybierz plik ZIP, który chcesz rozpakować, i kliknij "Otwórz".

Po zakończeniu pobierania danych z pliku ZIP i wyodrębnieniu ich do wybranego folderu wyświetla się komunikat potwierdzający.

Teraz przejdź do folderu "Extracted Files", a zobaczysz pliki wyodrębnione z wybranego przez nas pliku ZIP.

Wnioski
Podsumowując, integracja IronZIP z .NET MAUI zapewnia potężne rozwiązanie do tworzenia, odczytywania i wyodrębniania archiwów w aplikacjach wielopłatformowych.
Podany przykład pokazuje, jak używać IronZIP do zaznaczania wielu plików, tworzenia archiwum ZIP oraz wyodrębniania plików z archiwum ZIP w środowisku .NET MAUI.
To połączenie technologii zapewnia programistom płynne zarządzanie archiwami i pracę z nimi na różnych platformach.
Aby uzyskać bardziej szczegółowe informacje i przykłady kodu, odwiedź tę stronę dokumentacji.
IronZIP oferuje bezpłatną wersję próbną. Bibliotekę można pobrać tutaj i wypróbować.
Często Zadawane Pytania
Jak moge zintegrowac biblioteke ZIP z projektem .NET MAUI?
Aby zintegrowac biblioteke ZIP, taka jak IronZIP, z projektem .NET MAUI, utworz nowy projekt .NET MAUI w Visual Studio, zainstaluj biblioteke IronZIP za posrednictwem NuGet i zaimplementuj funkcje archiwizacji ZIP przy uzyciu dostarczonych przykladow kodu.
Jakie sa korzysci z uzywania biblioteki ZIP w aplikacji .NET MAUI?
Uzycie biblioteki ZIP, takiej jak IronZIP, w aplikacji .NET MAUI pozwala na efektywna kompresje i ekstrakcje danych, wspiera wiele formatow archiwow i jest kompatybilne na roznych platformach i wersjach .NET.
Czy mogę używać biblioteki ZIP w aplikacjach wieloplatformowych?
Tak, można używać IronZIP w aplikacjach wieloplatformowych. Obsługuje on aplikacje napisane w językach C#, F# i VB.NET na systemach Windows, Linux, Mac, iOS i Android.
Jak utworzyć plik ZIP w aplikacji .NET MAUI?
W aplikacji .NET MAUI można utworzyć plik ZIP za pomocą biblioteki IronZIP. Należy zaimplementować metodę OnSelectFilesButtonClicked, aby umożliwić wybór plików, a następnie użyć klasy IronArchive do dodania plików do archiwum ZIP za pomocą metody CreateZip.
Jak wyodrębnić pliki z archiwum ZIP w projekcie .NET MAUI?
Aby wyodrębnić pliki z archiwum ZIP w projekcie .NET MAUI, należy użyć metody ExtractArchiveToDirectory biblioteki IronZIP. Najpierw należy zaimplementować metodę OnSelectFileButtonClicked w celu wybrania pliku ZIP, a następnie wyodrębnić jego zawartość do określonego katalogu.
Jakie formaty archiwów obsługuje IronZIP?
IronZIP obsługuje wiele formatów archiwów, w tym ZIP, TAR, GZIP i BZIP2, co czyni go wszechstronnym wyborem do obsługi różnych typów skompresowanych archiwów plików.
Czy IronZIP jest zgodny z różnymi wersjami .NET?
Tak, IronZIP jest kompatybilny z różnymi wersjami .NET, takimi jak .NET 7, 6, 5, Core, Standard i Framework, zapewniając elastyczność programistom pracującym w różnych środowiskach .NET.
Jakie są warunki wstępne wdrożenia biblioteki ZIP w .NET MAUI?
Aby zaimplementować bibliotekę ZIP, taką jak IronZIP, w .NET MAUI, upewnij się, że masz zainstalowane Visual Studio z dodatkiem .NET MAUI oraz że biblioteka IronZIP została dodana do projektu za pośrednictwem NuGet.
Jak mogę wzbogacić aplikację .NET MAUI o funkcje ZIP?
Ulepsz aplikację .NET MAUI, integrując IronZIP w celu zarządzania tworzeniem i rozpakowywaniem plików ZIP, zapewniając użytkownikom solidne możliwości kompresji i dekompresji danych.
Gdzie mogę znaleźć więcej informacji na temat korzystania z bibliotek ZIP w .NET MAUI?
Aby uzyskać bardziej szczegółowe informacje i przykłady kodu, można odwiedzić stronę dokumentacji IronZIP, która zawiera wyczerpujące wskazówki dotyczące integracji i wykorzystania funkcji ZIP w projektach .NET MAUI.




