Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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