次の方法で共有


フォルダ選択ツール

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 リポジトリにあります。