Partager via


FolderPicker

Le FolderPicker offre la possibilité de sélectionner un dossier dans le système de fichiers.

Les conditions préalables suivantes requises pour le FolderPicker :

Ajouter des autorisations à AndroidManifest.xml :

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

Syntaxe

C#

Le FolderPicker peut être utilisé de la manière suivante dans 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);
    }
}

Dossier

L'enregistrement Folder représente un dossier dans le système de fichiers. Il définit les propriétés suivantes :

  • Path contient un chemin de dossier.
  • Nom contient un nom de dossier.

FolderPickerResult

Stocke les informations de PickAsync.

Propriétés

Propriété Type Description
Dossier Folder Obtient le Folder qui représente le dossier sélectionné dans le système de fichiers.
Exception Exception Obtient le Exception si l’opération de sélection a échoué.
IsSuccessful bool Obtient une valeur déterminant si l'opération a réussi.

Méthodes

méthode Description
EnsureSuccess Vérifie si l’opération de sélection a réussi.

Avertissement

EnsureSuccess lancera un Exception si l'opération de sélection a échoué.

Méthodes

méthode Description
PickAsync Requête l'autorisation et permet de sélectionner un dossier dans le système de fichiers.

Enregistrement des dépendances

Si vous souhaitez injecter un service, vous devez d’abord l’enregistrer. Mettez à jour MauiProgram.cs avec les modifications suivantes :

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

Vous pouvez maintenant injecter le service comme ceci :

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

Pour plus de détails sur la manière de fournir un CancellationToken, reportez-vous à la documentation Microsoft.

Exemples

Vous pouvez trouver un exemple de FolderPicker en action dans l'exemple d'application de la boîte à outils de la communauté .NET MAUI.

API

Vous pouvez trouver le code source deFolderPicker sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.