IRONSOFTWAREHOME
USING IRONZIP

.NET MAUI 資料提取 SDK 與 IronZIP

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

.NET MAUI,或稱.NET跨平台應用程式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. 已安裝.NET MAUI工作負載的Visual Studio
  2. 已將IronZIP程式庫新增到您的.NET MAUI專案中。

在Visual Studio中建立.NET MAUI應用程式的步驟

  1. 打開Visual Studio並點擊"建立一個新專案"。

  2. 選擇.NET MAUI App專案模板並點擊下一步。

    .NET MAUI資料提取SDK(開發者教程):圖1

  3. 配置專案設定、專案名稱和位置。 點擊下一步。

    .NET MAUI資料提取SDK(開發者教程):圖2

  4. 從附加資訊中選擇正確的.NET Framework版本。 IronZIP支持最新版本的.NET Framework,因此您可以選擇該版本。

    .NET MAUI資料提取SDK(開發者教程):圖3

  5. 點擊建立,以使用IronZIP程式庫建立用於Zip資料提取的.NET MAUI應用程式。

安裝IronZIP

要將IronZIP整合到您的.NET MAUI專案中,請按照以下步驟:

  1. 從視圖中打開方案總管。

    .NET MAUI資料提取SDK(開發者教程):圖4

  2. 在方案總管中右鍵單擊您的專案。

  3. 選擇"為方案管理NuGet套件"。

    .NET MAUI資料提取SDK(開發者教程):圖5

  4. 在NuGet瀏覽選項卡中,搜尋"IronZIP"並為您的專案安裝此套件。

    .NET MAUI資料提取SDK(開發者教程):圖6

  5. 在預覽更改對話框中,點擊"應用"以進行更改,然後點擊"接受"以接受IronZIP授權。

  6. NuGet將完成安裝並出現確認消息。

現在,對所有已安裝和設置完成,我們來進行.NET MAUI中建立ZIP提取器的資料提取任務。

建立ZIP提取器的步驟

步驟1:設計應用程式介面

在本節中,我們將專注於為您的.NET MAUI應用程式設計使用者介面。 打開專案資料夾中的MainPage.xaml文件,並新增必要的XAML程式碼以建立易於使用的介面。

這裡,我們需要兩個按鈕,一個用於建立zip文件,另一個用於提取zip文件。 還需要一些標籤以提供適當的消息。 以下程式碼範例顯示了設計的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文件,建立"建立Zip"功能。 實現OnSelectFilesButtonClicked方法,允許打開FilePicker並選擇任意型別的多個文件以建立zip文件。

然後,建立選中文件所有路徑的列表。 最後,將其傳遞給CreateZip方法,其中IronZIP將使用所有文件路徑在一秒鐘內無縫建立zip文件。

以下程式碼範例顯示了如何完成此任務。

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}");
    }
}

接下來,實現CreateZip方法。 IronZIP的IronArchive類接受要建立zip文件的路徑。 迴圈遍歷每個選中文件路徑,然後通過Add方法將它們新增到zip文件中。

當文件新增完畢,將使用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");
}

如需有關如何建立、新增文件到現有zip和提取zip的更多詳細資訊,請存取此教程頁面

2. 提取Zip

現在,我們將建立"提取Zip"功能。 再次在MainPage.xaml.cs文件中,實現OnSelectFileButtonClicked方法,以允許打開FilePicker並選擇一個單一的zip文件進行提取。

選擇文件的完整路徑將設置為一個字串變數,並傳送到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 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}");
    }
}

接下來,建立ExtractZip方法。 在此方法中,設置想要提取文件的輸出文件夾的路徑。

使用IronZIP的ExtractArchiveToDirectory方法,傳遞選擇的文件路徑和輸出路徑。 此方法無縫轉換並傳輸zip中的所有文件到輸出文件夾。 最後,成功提取後會顯示確認消息。

程式碼如下所示:

private async void ExtractZip(string selectedFilePath)
{
    var path = "E:\\Extracted Files";
    IronArchive.ExtractArchiveToDirectory(selectedFilePath, path);
    await DisplayAlert("Congratulations", "All files extracted to " + path, "Ok");
}

步驟3:運行應用程式

成功整合程式碼和IronZIP後,構建並運行應用程式以執行資料提取任務。 通過建立zip文件和從zip文件中提取文件來測試功能。

通過檢查指定目錄中的輸出和提取的文件驗證結果。

步驟4:驗證結果

1. 測試建立Zip

讓我們先嘗試建立一個zip文件。點擊建立Zip按鈕,它將顯示文件對話框。 您可以選擇多個或單個文件加入zip中。

.NET MAUI資料提取SDK(開發者教程):圖8

點擊打開,確認消息會顯示文件已成功新增到output.zip。

.NET MAUI資料提取SDK(開發者教程):圖9

如果我們導航到output.zip文件並查看其內容,我們將看到所有新增的文件。

.NET MAUI資料提取SDK(開發者教程):圖10

2. 測試提取Zip

現在讓我們提取一個zip文件。點擊提取Zip按鈕,會出現文件對話框。 選擇您想要提取的zip文件並點擊打開。

.NET MAUI資料提取SDK(開發者教程):圖11

一旦從zip文件中完成資料捕獲並提取到想要的文件夾,它會顯示確認消息。

.NET MAUI資料提取SDK(開發者教程):圖12

現在,導航到"提取的文件"文件夾,您將看到從我們選擇的zip中提取的文件。

.NET MAUI資料提取SDK(開發者教程):圖13

結論

總之,將IronZIP與.NET MAUI整合提供了一個強大的方案,便於在跨平台應用中建立、讀取和提取壓縮文件。

提供的範例演示了如何在.NET MAUI中使用IronZIP選擇多個文件、生成zip檔案和從zip檔案提取文件。

這些技術的組合為開發者提供了無縫的體驗,方便在不同的平臺上管理和處理壓縮檔案。

如需更多詳細資訊和程式碼範例,請存取此文件頁面。

IronZIP提供免費試用。 您可以從此處下載程式庫並試用。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

受到全球數百萬工程師的信賴

Iron Software的客戶標誌
獲取您的無需承諾咨詢
完成以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終被保密。
受到全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立