IRONZIPの使用

.NET MAUIデータ抽出SDK with IronZIP

公開済み 2023年12月12日
共有:

イントロダクション

.NET MAUI(.NET Multi-platform App UI)は、クロスプラットフォームアプリケーションを構築するためのフレームワークです。 開発者は、Windows、macOS、iOS、Android、その他あらゆるデバイス上で動作するアプリケーションを単一のコードベースで作成することができる。リアクト・ネイティブに似ているが、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、コア、スタンダード、フレームワークなどの様々な.NETバージョンと互換性があります。

クロスプラットフォームなので、Windows、Linux、Mac、iOS、Android、Docker、Azure、AWS上で動作するC#、F#、VB.NETアプリケーションに適しています。

IronZIPの主な特徴は以下の通りです:

  • 様々なOSに対応するクロスプラットフォーム。
  • 異なる.NETバージョンやプロジェクトタイプとの互換性。
  • ZIP、TAR、GZIP、BZIP2アーカイブの作成、読み込み、解凍をサポート。
  • .NET MAUIとの統合により、マルチプラットフォームアプリケーションを構築。

前提条件

始める前に、以下の前提条件が揃っていることを確認してください:

1.ビジュアルスタジオ.NET MAUIワークロードがインストールされている。

  1. .NET MAUIプロジェクトにIronZIPライブラリを追加。

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

  1. Visual Studioを開き、"Create a New project "をクリックする。

  2. .NET MAUI App プロジェクト・テンプレートを選択し、Next をクリックします。

    .NET MAUIデータ抽出SDK(開発者向けチュートリアル):図1

  3. プロジェクト設定、プロジェクト名、場所を設定する。 次へ進む。

    .NET MAUIデータ抽出SDK(開発者向けチュートリアル):図2

  4. Additional Informationから、正しい.NETフレームワークを選択します。 IronZIPは.NETフレームワークの最新バージョンをサポートしています。

    .NET MAUIデータ抽出SDK(開発者向けチュートリアル):図3

  5. Create をクリックして、IronZIP ライブラリを使用した .NET MAUI App for Zip Data Extraction (.NET 用アイアン ZIP) を作成します。

IronZIPのインストール

IronZIPを.NET MAUIプロジェクトに統合するには、以下の手順に従ってください:

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

    .NET MAUIデータ抽出SDK(開発者向けチュートリアル):図4

  2. ソリューションエクスプローラーでプロジェクトを右クリックします。

  3. Manage NuGet Packages for Solution "を選択します。

    .NET MAUIデータ抽出SDK(開発者チュートリアル):図5

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

    .NET MAUIデータ抽出SDK(開発者向けチュートリアル):図6

  5. Preview Changesダイアログボックスで、"Apply "をクリックして変更を行い、"Accept "をクリックしてIronZIPライセンスを承認します。

  6. NuGetがインストールを終了し、確認メッセージが表示されます。

    さて、すべてのインストールとセットアップが完了したので、.NET MAUIでZip Extractorを作成するデータ抽出タスクに移りましょう。

Zip Extractorの作成手順

ステップ1 アプリのインターフェースをデザインする

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

1つはzipファイルを作成するためのボタン、もう1つは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

アプリケーションを実行すると、画面上に通常のウィンドウズ・フォームとして出力されます。

.NET MAUIデータ抽出SDK(開発者向けチュートリアル):図7

ステップ2 コードの実装

1.ジップ作成

MainPage.xaml.csファイルを開き、".[ジップを作成する](/csharp/zip/examples/create-zip/)"機能である。 OnSelectFilesButtonClickedメソッドを実装して、FilePickerを開き、zipファイルを作成するために任意のタイプの複数のファイルを選択できるようにします。

次に、選択したファイルからすべてのパスのリストを作成する。 最後にそれをCreateZipメソッドに渡すと、IronZIPは1秒以内にシームレスにすべてのファイルパスを使用して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
VB   C#

ここで、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 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#

ZIPの作成方法、既存のZIPへのファイルの追加方法、ZIPの解凍方法の詳細については、こちらをご覧ください。**チュートリアルページ.

2.zipを展開する

では、"Zipを取り出す"機能である。 再度、MainPage.xaml.cs ファイルで、OnSelectFileButtonClicked メソッドを実装して、FilePicker を開き、抽出する zip ファイルを 1 つ選択できるようにします。

選択されたファイルのフルパスは文字列変数にセットされ、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 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メソッドを使用して、選択されたファイルパスと出力パスを渡します。 この方法では、zip内のすべてのファイルをシームレスに変換し、出力フォルダに転送します。 最後に、抽出に成功すると確認メッセージが表示される。

コードは次のようになります:

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とコードをうまく統合したら、アプリケーションをビルドして実行し、データ抽出タスクを実行する。 zipファイルを作成し、zipファイルからファイルを抽出して機能をテストする。

指定されたディレクトリにある出力ファイルと抽出されたファイルをチェックして、結果を確認する。

ステップ4 結果の確認

1.テスト作成 Zip

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

.NET MAUIデータ抽出SDK(開発者向けチュートリアル):図8

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

.NET MAUIデータ抽出SDK(開発者向けチュートリアル):図9

output.zipファイルに移動して中身を見ると、追加したすべてのファイルが表示される。

.NET MAUIデータ抽出SDK(開発者向けチュートリアル):図10

2.Zipの取り出しテスト

それではZIPファイルを解凍してみましょう。ExtractZipボタンをクリックすると、ファイルダイアログが表示されます。 解凍したいzipファイルを選び、開くをクリックする。

.NET MAUIデータ抽出SDK(開発者向けチュートリアル):図11

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

.NET MAUIデータ抽出SDK(開発者向けチュートリアル):図12

ここで、"Extracted Files "フォルダに移動すると、私たちが選んだZIPから抽出されたファイルが表示されます。

.NET MAUIデータ抽出SDK(開発者向けチュートリアル):図13

結論

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

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

この技術の組み合わせにより、開発者はさまざまなプラットフォームでアーカイブを管理・操作する際にシームレスな体験を提供できる。

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

IronZIPは、無料体験. ライブラリはからダウンロードできます[以下の内容を日本語に翻訳します:

ここに

ご希望のイディオムや技術用語が追加されることによって、より適切な翻訳が提供できる場合もありますので、詳細なコンテキストを教えていただけると幸いです。](/csharp/zip/)そしてお試しください。

< 以前
.NET ZipArchive (開発者チュートリアル)
次へ >
C#でZipアーカイブを作成する方法

準備はできましたか? バージョン: 2024.12 新発売

無料のNuGetダウンロード 総ダウンロード数: 5,596 ライセンスを表示 >