次の方法で共有


FolderPicker

FolderPicker には、ファイル システムからフォルダーを選ぶ機能があります。

FolderPicker には、次の前提条件が必要です。

AndroidManifest.xml にアクセス許可を追加します。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

構文

C#

FolderPicker は、C# では次のように使用できます。

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 レコードは、ファイル システム内のフォルダーを表します。 次のプロパティが定義されます。

  • Path には Folder のパスが含まれています。
  • Name には Folder の名前が含まれています。

FolderPickerResult

PickAsync からの情報を格納します。

Properties

プロパティ タイプ 説明
フォルダー Folder ファイル システム内で選択されているフォルダーを表す Folder を取得します。
例外 Exception 選択操作が失敗した場合は、Exception を取得します。
IsSuccessful bool 操作が成功したかどうかを判断する値を取得します。

メソッド

メソッド 説明
EnsureSuccess 選択操作が成功したかどうかを確認します。

警告

選択操作が失敗した場合、EnsureSuccessException をスローします。

メソッド

メソッド 説明
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 リポジトリにあります。