ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
.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の主な特徴は以下の通りです:
始める前に、以下の前提条件が揃っていることを確認してください:
1.ビジュアルスタジオ.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ファイルを開き、".[ジップを作成する](/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
ここで、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へのファイルの追加方法、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
では、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の使い方を示しています。
この技術の組み合わせにより、開発者はさまざまなプラットフォームでアーカイブを管理・操作する際にシームレスな体験を提供できる。
より詳細な情報とコード例については、こちらをご覧ください。ドキュメントページ
IronZIPは、無料体験. ライブラリはからダウンロードできます[以下の内容を日本語に翻訳します:
ここに
ご希望のイディオムや技術用語が追加されることによって、より適切な翻訳が提供できる場合もありますので、詳細なコンテキストを教えていただけると幸いです。](/csharp/zip/)そしてお試しください。
9つの .NET API製品 オフィス文書用