Compartir por


Selector de carpetas

FolderPicker proporciona la capacidad de elegir una carpeta del sistema de archivos.

Las siguientes condiciones previas son necesarias para el FolderPicker:

Agregue permisos a AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Uso básico

El FolderPicker se puede agregar a una aplicación .NET MAUI de la siguiente manera.

Solicitar permisos

Los desarrolladores deben solicitar Permissions.StorageRead manualmente.

var readPermissionsRequest = await Permissions.RequestAsync<Permissions.StorageRead>();

Seleccionar carpeta

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);
    }
}

Carpeta

El Folder registro representa una carpeta en el sistema de archivos. Define las siguientes propiedades:

  • La ruta de acceso contiene una carpeta.
  • El nombre contiene un nombre de carpeta.

ResultadoSelectorDeCarpeta

Almacena información de PickAsync.

Propiedades

Propiedad Tipo Description
Carpeta Folder Obtiene el Folder que representa la carpeta seleccionada en el sistema de archivos.
Exception Exception Obtiene el Exception si la operación de selección falló.
EsExitoso bool Obtiene un valor que determina si la operación se realizó correctamente.

Methods

Método Description
AsegurarÉxito Comprueba si la operación de selección se realizó correctamente.

Advertencia

EnsureSuccess producirá una Exception excepción si la operación pick no se realizó correctamente.

Methods

Método Description
PickAsync Solicita permiso y permite seleccionar una carpeta en el sistema de archivos.

Registro de dependencias

En caso de que quiera inyectar un servicio, primero debe registrarlo. Actualice MauiProgram.cs con los siguientes cambios:

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();
    }
}

Ahora puede insertar el servicio de la siguiente manera:

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 obtener más información sobre cómo proporcionar una CancellationToken referencia a la documentación de Microsoft.

Examples

Puede encontrar un ejemplo de FolderPicker en acción en la aplicación de ejemplo .NET MAUI Community Toolkit.

API

Puede encontrar el código fuente de FolderPicker en el repositorio de GitHub del Kit de herramientas de la comunidad de .NET MAUI.