透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
.NET MAUI(.NET Multi-platform App UI)は、クロスプラットフォームアプリケーションを構築するためのフレームワークです。 開発者は、Windows、macOS、iOS、Android、その他あらゆるデバイス上で動作するアプリケーションを単一のコードベースで作成することができる。リアクト・ネイティブに似ているが、JavaScriptの代わりにC#(シーシャープ)で動作する。
.NET MAUIにより、C#(シーシャープ)開発者は、単一の環境から手間のかからないモバイルアプリケーションやデスクトップアプリを構築できます。 Microsoft .NET MAUIは、開発者がアプリ開発プロセスを容易にし、最適化できるよう、本格的なドキュメントとリソースを提供します。
この記事では、データ抽出の目的で.NET MAUIと連携する強力なC# ZIPアーカイブライブラリのIronZIPについて探ります。
Visual Studio .NET MAUIプロジェクトの作成
NuGetを使用したC# Zipライブラリのインストール
データ抽出アプリのインターフェースをデザインする
Zip作成メソッドとZip展開メソッドの実装
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の主な特徴は以下の通りです:
始める前に、以下の前提条件が揃っていることを確認してください:
Visual Studio に .NET MAUI ワークロードをインストールします。
Visual Studioを開き、"Create a New project "をクリックする。
.NET MAUI App プロジェクト・テンプレートを選択し、Next をクリックします。
プロジェクト設定、プロジェクト名、場所を設定する。 次へ進む。
Additional Informationから、正しい.NETフレームワークを選択します。 IronZIPは.NETフレームワークの最新バージョンをサポートしています。
IronZIPを.NET MAUIプロジェクトに統合するには、以下の手順に従ってください:
ビューからソリューションエクスプローラーを開く。
ソリューションエクスプローラーでプロジェクトを右クリックします。
Manage NuGet Packages for Solution "を選択します。
NuGetブラウズタブで "IronZIP "を検索し、プロジェクトのパッケージをインストールする。
Preview Changesダイアログボックスで、"Apply "をクリックして変更を行い、"Accept "をクリックしてIronZIPライセンスを承認します。
NuGetがインストールを終了し、確認メッセージが表示されます。
さて、すべてのインストールとセットアップが完了したので、.NET MAUIでZip Extractorを作成するデータ抽出タスクに移りましょう。
このセクションでは、.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>
アプリケーションを実行すると、画面上に通常のウィンドウズ・フォームとして出力されます。
MainPage.xaml.cs ファイルを開き、「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
では、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 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
既存のZIPにファイルを作成、追加、およびZIPを抽出する方法についての詳細な情報は、こちらのチュートリアルページをご覧ください。
次に、「Extract 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 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
次に、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
IronZIPとコードをうまく統合したら、アプリケーションをビルドして実行し、データ抽出タスクを実行する。 zipファイルを作成し、zipファイルからファイルを抽出して機能をテストする。
指定されたディレクトリにある出力ファイルと抽出されたファイルをチェックして、結果を確認する。
まずZIPファイルを作成してみましょう。CreateZipボタンをクリックすると、ファイルダイアログが表示されます。 zipに追加するファイルは、複数または1つを選択できます。
開く」をクリックすると、ファイルがoutput.zipに正常に追加されたことを示す確認メッセージが表示されます。
output.zipファイルに移動して中身を見ると、追加したすべてのファイルが表示される。
それではZIPファイルを解凍してみましょう。ExtractZipボタンをクリックすると、ファイルダイアログが表示されます。 解凍したいzipファイルを選び、開くをクリックする。
zipファイルからのデータキャプチャが完了し、目的のフォルダに解凍されると、確認メッセージが表示されます。
ここで、"Extracted Files "フォルダに移動すると、私たちが選んだZIPから抽出されたファイルが表示されます。
結論として、IronZIPを.NET MAUIと統合することで、クロスプラットフォームアプリケーションでアーカイブを作成、読み込み、抽出するための強力なソリューションを提供します。
提供されているサンプルは、.NET MAUI内で複数のファイルを選択し、ZIPアーカイブを生成し、ZIPアーカイブからファイルを抽出するためのIronZIPの使い方を示しています。
この技術の組み合わせにより、開発者はさまざまなプラットフォームでアーカイブを管理・操作する際にシームレスな体験を提供できる。
詳細情報やコード例については、こちらのドキュメントページをご覧ください。