フッターコンテンツにスキップ
IRONZIPの使用

.NET MAUI データ抽出SDKとIronZIP

.NET MAUI、または.NET Multi-platform App UIは、クロスプラットフォームアプリケーションを構築するためのフレームワークです。 これは、Windows、macOS、iOS、Android、その他のデバイスで動作する単一のコードベースでアプリケーションを作成することができます。 React Nativeに似ていますが、JavaScriptの代わりにC#を使用します。

.NET MAUIは、C#開発者が単一の環境から手間のかからないモバイルアプリケーションやデスクトップアプリを構築できるようにします。 Microsoft .NET MAUIは、開発者がアプリ開発プロセスを合理化し、最適化するための包括的なドキュメントとリソースを提供しています。

この記事では、データ抽出の目的で.NET MAUIと統合された、C#の強力なZIPアーカイブライブラリIronZIPを探ります。

Zipアーカイブからデータを抽出する方法

  1. Visual Studio .NET MAUIプロジェクトを作成
  2. NuGetを使用してC# Zipライブラリをインストール
  3. データ抽出アプリのインターフェースを設計
  4. Zip作成およびZip抽出メソッドを実装
  5. アプリケーションを実行して結果を確認

IronZIPへの紹介

IronZIPは、.NETでアーカイブを作成、読み取り、抽出するために設計された包括的なC# ZIPアーカイブライブラリです。 ZIP、TAR、GZIP、BZIP2など、幅広いアーカイブ形式をサポートしています。IronZIPは、.NET 7、6、5、Core、Standard、およびFrameworkなどのさまざまな.NETバージョンと互換性があります。

クロスプラットフォームであり、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. IronZIPライブラリを.NET MAUIプロジェクトに追加。

Visual Studioで.NET MAUIアプリケーションを作成する手順

  1. Visual Studioを開き、「新しいプロジェクトを作成」をクリックします。
  2. .NET MAUIアプリプロジェクトテンプレートを選択し、「次へ」をクリックします。

    .NET MAUI Data Extraction SDK (開発者ガイド): 図1

  3. プロジェクト設定、プロジェクト名、および場所を構成します。 次へをクリックします。

    .NET MAUI Data Extraction SDK (開発者ガイド): 図2

  4. 追加情報から適切な.NETフレームワークを選択します。 IronZIPは最新バージョンの.NETフレームワークをサポートしているため、それを選択できます。

    .NET MAUI Data Extraction SDK (開発者ガイド): 図3

  5. IronZIPライブラリを使用してZipデータ抽出用の.NET MAUIアプリを作成するには、「作成」をクリックします。

IronZIPのインストール

IronZIPを.NET MAUIプロジェクトに統合するには、以下の手順を行います:

  1. ビューからソリューションエクスプローラーを開きます。

    .NET MAUI Data Extraction SDK (開発者ガイド): 図4

  2. ソリューションエクスプローラーでプロジェクトを右クリックします。
  3. 「NuGetパッケージの管理」を選択します。

    .NET MAUI Data Extraction SDK (開発者ガイド): 図5

  4. NuGetブラウズタブで「IronZIP」を検索し、プロジェクトにパッケージをインストールします。

    .NET MAUI Data Extraction SDK (開発者ガイド): 図6

  5. プレビュー変更ダイアログボックスで「適用」をクリックして変更を加え、その後「承諾」をクリックしてIronZIPライセンスを承認します。
  6. NuGetがインストールを終了し、確認メッセージが表示されます。

全てがインストールされ設定が完了したら、.NET MAUIでZip Extractorの作成に進みましょう。

Zip Extractorを作成する手順

ステップ1: アプリのインターフェースを設計

このセクションでは、.NET MAUIアプリケーションのユーザーインターフェース設計に焦点を当てます。 プロジェクトフォルダのMainPage.xamlファイルを開き、ユーザーフレンドリーなインターフェースを作成するための必要なXAMLコードを追加します。

ここでは、zipファイルを作成するためのボタンと、zipファイルを抽出するためのボタンの2つが必要です。 適切なメッセージを提供するためにいくつかのラベルも必要です。 以下のコード例は、デザインの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 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 Data Extraction SDK (開発者ガイド): 図7

ステップ2: コードの実装

1. Zipを作成

プロジェクトのMainPage.xaml.csファイルを開き、「Create 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}");
    }
}
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

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

既存のzipにファイルを追加して抽出する方法や、zipを作成する方法の詳細については、こちらのチュートリアルページをご覧ください。

2. Zipを抽出

ここでは、「Extract Zip」機能を作成します。 再び、MainPage.xaml.csファイルで、OnSelectFileButtonClickedメソッドを実装して、FilePickerを開き、抽出するための単一のzipファイルを選択できるようにします。

選択されたファイルのフルパスを文字列変数に設定し、IronZIPが抽出を行うExtractZipメソッドに送信します。 コードは次の通りです:

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

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

ステップ3: アプリケーションの実行

IronZIPとコードを統合した後、アプリケーションをビルドし、データ抽出タスクを実行します。 zipファイルを作成して、zipファイルからファイルを抽出することで機能をテストします。

指定したディレクトリで出力および抽出されたファイルを確認して結果を検証します。

ステップ4: 結果の検証

1. Zipの作成テスト

まず、zipファイルを作成してみましょう。Create Zipボタンをクリックすると、ファイルダイアログが表示されます。 zipに追加するために複数、または単一のファイルを選択できます。

.NET MAUI Data Extraction SDK (開発者ガイド): 図8

開くをクリックすると、ファイルが正常にoutput.zipに追加されたことを示す確認メッセージが表示されます。

.NET MAUI Data Extraction SDK (開発者ガイド): 図9

output.zipファイルに移動してその内容を確認すると、追加したすべてのファイルが表示されます。

.NET MAUI Data Extraction SDK (開発者ガイド): 図10

2. Zipの抽出テスト

次に、zipファイルを抽出します。Extract Zipボタンをクリックすると、ファイルダイアログが表示されます。 抽出したいzipファイルを選択して開くをクリックします。

.NET MAUI Data Extraction SDK (開発者ガイド): 図11

zipファイルからのデータキャプチャが完了し、希望のフォルダに抽出されると、確認メッセージが表示されます。

.NET MAUI Data Extraction SDK (開発者ガイド): 図12

次に、「抽出されたファイル」フォルダに移動すると、選択したzipから抽出されたファイルが表示されます。

.NET MAUI Data Extraction SDK (開発者ガイド): 図13

結論

結論として、IronZIPを.NET MAUIと統合することにより、クロスプラットフォームアプリケーションでのアーカイブの作成、読み取り、および抽出に対して強力なソリューションを提供します。

提供された例は、IronZIPを使用して複数のファイルを選択し、zipアーカイブを生成し、.NET MAUI内でzipアーカイブからファイルを抽出する方法を示しています。

これらのテクノロジーの組み合わせにより、開発者はさまざまなプラットフォームでシームレスにアーカイブを管理および操作する経験を得られます。

より詳細な情報とコード例については、こちらのドキュメントページをご覧ください。

IronZIPは無料トライアルを提供しています。 ライブラリをこちらからダウンロードして試してみてください。

よくある質問

ZIPライブラリを.NET MAUIプロジェクトに統合するにはどうすればよいですか?

IronZIPのようなZIPライブラリを.NET MAUIプロジェクトに統合するには、Visual Studioで新しい.NET MAUIプロジェクトを作成し、NuGetを使用してIronZIPライブラリをインストールし、提供されているコード例を使ってZIPアーカイブ機能を実装します。

.NET MAUIアプリケーションでZIPライブラリを使用する利点は何ですか?

.NET MAUIアプリケーションでIronZIPのようなZIPライブラリを使用することで、効率的なデータ圧縮と抽出を実現でき、複数のアーカイブ形式をサポートし、さまざまなプラットフォームや.NETバージョンと互換性があります。

クロスプラットフォームのアプリケーションでZIPライブラリを使用できますか?

はい、IronZIPをクロスプラットフォームのアプリケーションで使用できます。C#、F#、VB.NETアプリケーションをWindows、Linux、Mac、iOS、Androidでサポートしています。

.NET MAUIアプリケーションでZIPファイルを作成する方法は?

.NET MAUIアプリケーションでZIPファイルを作成するには、IronZIPライブラリを使用します。ファイル選択を可能にするOnSelectFilesButtonClickedメソッドを実装し、CreateZipメソッドでIronArchiveクラスを使ってファイルをZIPアーカイブに追加します。

.NET MAUIプロジェクトでZIPアーカイブからファイルを抽出するには?

.NET MAUIプロジェクトでZIPアーカイブからファイルを抽出するには、IronZIPのExtractArchiveToDirectoryメソッドを使用します。まず、OnSelectFileButtonClickedメソッドを実装してZIPファイルを選択し、その内容を指定されたディレクトリに抽出します。

IronZIPがサポートしているアーカイブ形式は?

IronZIPは、ZIP、TAR、GZIP、BZIP2などのさまざまなアーカイブ形式をサポートしており、異なる種類の圧縮ファイルアーカイブを扱うための汎用的な選択肢です。

IronZIP は異なる .NET バージョンと互換性がありますか?

はい、IronZIPは.NET 7、6、5、Core、Standard、およびFrameworkなどのさまざまな.NETバージョンと互換性があり、異なる.NET環境で作業する開発者に柔軟性を提供します。

.NET MAUIでZIPライブラリを実装するための前提条件は何ですか?

.NET MAUIでIronZIPのようなZIPライブラリを実装するには、.NET MAUIワークロードがインストールされたVisual Studioが必要で、NuGetを通じてプロジェクトにIronZIPライブラリを追加します。

.NET MAUIアプリケーションにZIP機能をどのように強化しますか?

IronZIPを統合してZIPファイルの作成と抽出を管理し、ユーザーに強力なデータ圧縮および解凍機能を提供することで、.NET MAUIアプリケーションを強化します。

.NET MAUIでZIPライブラリを使用するための詳細情報はどこで入手できますか?

.NET MAUIプロジェクトにおけるZIP機能の統合と活用に関する包括的なガイダンスを提供するIronZIPドキュメントページでより詳細な情報とコード例を見つけることができます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。