使用IRONZIP

.NET MAUI数据提取SDK(开发者教程)

发布 2023年十二月12日
分享:

简介

.NET MAUI 或 .NET Multi-platform App UI 是一个用于构建跨平台应用程序的框架。它允许开发人员使用单一代码库创建可在 Windows、macOS、iOS、Android 或任何其他设备上运行的应用程序。与 react native 相似,但使用 C# 而不是 JavaScript。

.NET MAUI 允许 C# 开发人员在一个环境中轻松创建移动应用程序和桌面应用程序。Microsoft .NET MAUI 提供全面的文档和资源,帮助开发人员简化和优化应用程序的开发过程。

在本文中,我们将探讨如何将功能强大的 C# ZIP 归档库 IronZIP 与 .NET MAUI 集成,以实现数据提取的目的。

如何从 Zip 档案中提取数据

1.创建 Visual Studio .NET MAUI 项目

2.使用 NuGet 安装 C# Zip 库

3.设计数据提取应用程序界面

4.实现创建 Zip 和提取 Zip 方法

5.运行应用程序并验证结果

IronZIP 简介

IronZIP 是一个全面的 C# ZIP 归档文件库,设计用于在 .NET 中创建、读取和提取归档文件。它支持多种归档格式,包括 ZIP、TAR、GZIP 和 BZIP2。IronZIP 兼容各种 .NET 版本,如 .NET 7、6、5、Core、Standard 和 Framework。

它具有跨平台性,适用于在 Windows、Linux、Mac、iOS、Android、Docker、Azure 和 AWS 上运行的 C#、F# 和 VB.NET 应用程序。

IronZIP 的主要功能包括

  • 跨平台支持各种操作系统。
  • 兼容不同的 .NET 版本和项目类型。
  • 支持创建、读取和提取 ZIP、TAR、GZIP 和 BZIP2 压缩包。
  • 与 .NET MAUI 集成,用于构建多平台应用程序。

先决条件

在开始之前,请确保您具备以下先决条件:

  1. Visual Studio 安装了 .NET MAUI 工作负载。

2.在 .NET MAUI 项目中添加 IronZIP 库。

在 Visual Studio 中创建 .NET MAUI 应用程序的步骤

1.打开 Visual Studio,点击 "创建新项目"。

2.选择 .NET MAUI App 项目模板,然后单击 "下一步"。

![.NET MAUI 数据提取 SDK(开发人员教程):图 1](/static-assets/zip/blog/net-maui-data-extraction-sdk/net-maui-data-extraction-sdk-1.webp)

3.配置项目设置、项目名称和位置。单击下一步。

![.NET MAUI 数据提取 SDK(开发人员教程):图 2](/static-assets/zip/blog/net-maui-data-extraction-sdk/net-maui-data-extraction-sdk-2.webp)

4.从 "附加信息 "中选择正确的 .NET Framework。IronZIP 支持最新版本的 .NET Framework,因此你可以选择它。

![.NET MAUI 数据提取 SDK(开发人员教程):图 3](/static-assets/zip/blog/net-maui-data-extraction-sdk/net-maui-data-extraction-sdk-3.webp)

5.单击 "创建",使用 IronZIP 库创建用于 Zip 数据提取的 .NET MAUI 应用程序。

安装 IronZIP

要将 IronZIP 集成到 .NET MAUI 项目中,请按照以下步骤操作:

1.从 "视图 "打开 "解决方案资源管理器"。

![.NET MAUI 数据提取 SDK(开发人员教程):图 4](/static-assets/zip/blog/net-maui-data-extraction-sdk/net-maui-data-extraction-sdk-4.webp)

2.右键单击解决方案资源管理器中的项目。

3.选择 "管理解决方案的 NuGet 包"。

![.NET MAUI 数据提取 SDK(开发人员教程):图 5](/static-assets/zip/blog/net-maui-data-extraction-sdk/net-maui-data-extraction-sdk-5.webp)

4.在 NuGet 浏览选项卡中,搜索 "IronZIP "并为项目安装软件包。

![.NET MAUI 数据提取 SDK(开发人员教程):图 6](/static-assets/zip/blog/net-maui-data-extraction-sdk/net-maui-data-extraction-sdk-6.webp)

5.在预览更改对话框中,单击 "应用 "进行更改,然后单击 "接受 "接受 IronZIP 许可。

6.NuGet 将完成安装并显示确认信息。

现在,一切都已安装和设置完毕,让我们开始在 .NET MAUI 中创建 Zip Extractor 的数据提取任务。

创建 Zip 提取器的步骤

第 1 步 设计应用程序界面

在本节中,我们将重点设计 .NET MAUI 应用程序的用户界面。打开项目文件夹中的MainPage.xaml文件,添加必要的 XAML 代码,创建用户友好的界面。

在这里,我们需要两个按钮,一个用于创建压缩文件,另一个用于解压缩。还需要一些标签来给出相应的信息。以下代码示例显示了设计的 xaml 代码:

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

运行该程序,你会看到屏幕上以普通 Windows 窗体形式显示的输出结果。

.NET MAUI 数据提取 SDK(开发人员教程):图 7

步骤 2 执行代码

1.创建 Zip

打开MainPage.xaml.cs文件并创建" "。创建压缩"功能。实现OnSelectFilesButtonClicked方法,允许打开FilePicker并选择多个任意类型的文件以创建压缩文件。

然后创建一个包含所选文件所有路径的列表。最后,将其传递给 CreateZip 方法,IronZIP 将在一秒钟内使用所有文件路径无缝创建一个压缩文件。

下面的代码示例展示了如何实现这一任务。

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
VB   C#

现在,让我们实现 CreateZip 方法,其中 IronZIP 的 IronArchive 类将获取要创建的压缩文件的路径。循环浏览每个选定的文件路径,并通过 Add 方法将其添加到压缩文件中。

文件添加完成后,将使用 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
VB   C#

有关如何创建压缩包、在现有压缩包中添加文件和解压缩的详细信息,请访问此页面 教程页面.

2.提取压缩包

现在,我们将创建"提取压缩"功能。同样,在MainPage.xaml.cs文件中,实现OnSelectFileButtonClicked方法,以便打开FilePicker并选择一个压缩文件进行提取。

所选文件的完整路径将被设置为字符串变量,并发送到 ExtractZip 方法,由 IronZIP 执行解压缩操作。代码如下

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
VB   C#

现在,让我们创建 ExtractZip 方法。在该方法中,设置要解压文件的输出文件夹路径。

使用 IronZIP 的 ExtractArchiveToDirectory 方法,传递选定的文件路径和输出路径。该方法可将压缩包中的所有文件无缝转换并传输到输出文件夹。最后,提取成功后会显示一条确认信息。

代码如下

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
VB   C#

第 3 步 运行应用程序

成功将代码与 IronZIP 集成后,构建并运行应用程序以执行数据提取任务。通过创建压缩文件和从压缩文件中提取文件来测试功能。

通过检查指定目录中的输出文件和解压文件来验证结果。

步骤 4 验证结果

1.测试创建 Zip

让我们先尝试创建一个压缩文件。单击 "创建压缩文件 "按钮,就会出现一个文件对话框。你可以选择多个或单个文件添加到压缩文件中。

.NET MAUI 数据提取 SDK(开发人员教程):图 8

单击 "打开",会出现一条确认信息,说明文件已成功添加到 output.zip。

.NET MAUI 数据提取 SDK(开发人员教程):图 9

如果我们导航到 output.zip 文件并查看其内容,就会看到我们添加的所有文件。

.NET MAUI 数据提取 SDK(开发人员教程):图 10

2.测试提取 Zip

现在我们来解压一个压缩文件。单击 "解压缩 "按钮,将出现文件对话框。选择一个要解压缩的 zip 文件,然后点击打开。

.NET MAUI 数据提取 SDK(开发人员教程):图 11

从压缩文件中获取数据并解压缩到所需文件夹后,系统会显示确认信息。

.NET MAUI 数据提取 SDK(开发人员教程):图 12

现在,导航到 "解压文件 "文件夹,你会看到从我们选择的压缩包中解压出来的文件。

.NET MAUI 数据提取 SDK(开发人员教程):图 13

结论

总之,将 IronZIP 与 .NET MAUI 集成,为在跨平台应用程序中创建、读取和提取归档文件提供了强大的解决方案。

所提供的示例演示了如何在 .NET MAUI 中使用 IronZIP 选择多个文件、生成压缩归档文件以及从压缩归档文件中提取文件。

这种技术组合为开发人员提供了跨各种平台管理和操作压缩包的无缝体验。

欲了解更多详细信息和代码示例,请访问以下网站 文件 page.

IronZIP 提供 免费试用.您可以从 *这里*** 并试一试。

< 前一页
.NET ZipArchive(开发者教程)
下一步 >
如何在C#中创建Zip档案

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 4,045 查看许可证 >