FolderPicker
O FolderPicker
fornece a capacidade de escolher uma pasta do sistema de arquivos.
As seguintes pré-condições necessárias para o FolderPicker
:
Adicionar permissões a AndroidManifest.xml
:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Sintaxe
C#
O FolderPicker
pode ser usado da seguinte maneira em 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);
}
}
Pasta
O registro Folder
representa uma pasta no sistema de arquivos. Ele define as seguintes propriedades:
- Caminho contém um caminho de pasta.
- Nome contém um nome de pasta.
FolderPickerResult
Armazena informações de PickAsync
.
Propriedades
Propriedade | Type | Descrição |
---|---|---|
Pasta | Folder |
Obtém o Folder que representa a pasta selecionada no sistema de arquivos. |
Exceção | Exception |
Obtém o Exception se a operação de seleção falhar. |
IsSuccessful | bool |
Obtém um valor que determina se a operação foi bem-sucedida. |
Métodos
Método | Descrição |
---|---|
EnsureSuccess | Verifica se a operação de seleção foi bem-sucedida. |
Aviso
EnsureSuccess
lançará um Exception
se a operação de seleção não tiver êxito.
Métodos
Método | Descrição |
---|---|
PickAsync | Pede permissão e permite selecionar uma pasta no sistema de arquivos. |
Registro de Dependência
Caso queira injetar serviço, primeiro é necessário cadastrá-lo.
Atualize MauiProgram.cs
com as próximas alterações:
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();
}
}
Agora você pode injetar o serviço assim:
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);
}
}
Para obter mais detalhes sobre como fornecer um CancellationToken
consulte a documentação da Microsoft.
Exemplos
Você pode encontrar um exemplo de FolderPicker
em ação no Aplicativo de exemplo do .NET MAUI Community Toolkit.
API
O código-fonte do FolderPicker
pode ser encontrado no repositório GitHub do .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit