Compartilhar via


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.