FolderPickerは、ファイル システムからフォルダーを選択する機能を提供します。
FolderPickerには、次の前提条件が必要です。
AndroidManifest.xmlにアクセス許可を追加します。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
基本的な使用方法
FolderPicker は、次の方法で .NET MAUI アプリケーションに追加できます。
アクセス許可の要求
開発者は、Permissions.StorageRead を手動で要求する必要があります。
var readPermissionsRequest = await Permissions.RequestAsync<Permissions.StorageRead>();
フォルダーの選択
async Task PickFolder(CancellationToken cancellationToken)
{
var result = await FolderPicker.Default.PickAsync(cancellationToken);
if (result.IsSuccessful)
{
await Toast.Make($"The folder was picked: Name - {result.Folder.Name}, Path - {result.Folder.Path}", ToastDuration.Long).Show(cancellationToken);
}
else
{
await Toast.Make($"The folder was not picked with error: {result.Exception.Message}").Show(cancellationToken);
}
}
フォルダー
Folder レコードは、ファイル システム内のフォルダーを表します。 次のプロパティを定義します。
- パスにはフォルダー パスが含まれています。
- 名前にはフォルダー名が含まれます。
FolderPickerResult
PickAsyncからの情報を格納します。
プロパティ
| プロパティ | タイプ | Description |
|---|---|---|
| フォルダー | Folder |
ファイル システムで選択したフォルダーを表す Folder を取得します。 |
| 例外 | Exception |
選択操作が失敗した場合の Exception を取得します。 |
| 成功したか | bool |
操作が成功したかどうかを判断する値を取得します。 |
Methods
| メソッド | Description |
|---|---|
| 成功を確実にする | 選択操作が成功したかどうかを確認します。 |
Warnung
EnsureSuccess は、選択操作が失敗した場合に Exception をスローします。
Methods
| メソッド | Description |
|---|---|
| PickAsync | アクセス許可を要求し、ファイル システム内のフォルダーの選択を許可します。 |
依存関係の登録
サービスを挿入する場合は、まずサービスを登録する必要があります。
次の変更で MauiProgram.cs を更新します。
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseMauiCommunityToolkit();
// Register the FolderPicker as a singleton
builder.Services.AddSingleton<IFolderPicker>(FolderPicker.Default);
// Register the MainPage as transient to make sure it can resolve the IFolderPicker dependency.
builder.Services.AddTransient<MainPage>();
return builder.Build();
}
}
これで、次のようにサービスを挿入できます。
public partial class MainPage : ContentPage
{
private readonly IFolderPicker folderPicker;
public MainPage(IFolderPicker folderPicker)
{
InitializeComponent();
this.folderPicker = folderPicker;
}
async Task PickFolder(CancellationToken cancellationToken)
{
var result = await folderPicker.PickAsync(cancellationToken);
result.EnsureSuccess();
await Toast.Make($"Folder picked: Name - {result.Folder.Name}, Path - {result.Folder.Path}", ToastDuration.Long).Show(cancellationToken);
}
}
CancellationTokenを提供する方法の詳細については、Microsoft のドキュメントを参照してください。
例示
実際の FolderPicker の例は 、.NET MAUI Community Toolkit サンプル アプリケーションにあります。
API
FolderPicker のソース コードは、.NET MAUI Community Toolkit の GitHub リポジトリにあります。
.NET MAUI Community Toolkit