ФолдерПикер (инструмент выбора папки)

Элемент 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

Запись Folder представляет папку в файловой системе. Он определяет следующие свойства:

  • Путь содержит путь к папке.
  • В имени содержится название папки.

Результат выбора папки

Сохраняет сведения из PickAsync.

Свойства

Недвижимость Тип Description
Folder Folder Возвращает папку Folder , представляющую выбранную папку в файловой системе.
Исключение Exception Возвращает Exception, если операция выбора завершилась сбоем.
Успешно bool Возвращает значение, определяющее, выполнена ли операция успешно.

Методы

Метод Description
Обеспечение соответствия Проверяет, была ли операция выборки успешной.

Предупреждение

EnsureSuccess вызовет ошибку Exception , если операция выбора была неудачной.

Методы

Метод 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, обратитесь к документации Майкрософт.

Примеры

Пример FolderPicker действия можно найти в примере приложения .NET MAUI Community Toolkit.

API

Исходный код FolderPickerможно найти в репозитории .NET MAUI Community Toolkit GitHub.