Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Элемент 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.
.NET MAUI Community Toolkit