Delen via


FolderPicker

De FolderPicker functie biedt de mogelijkheid om een map uit het bestandssysteem te kiezen.

De volgende voorwaarden vereist voor de FolderPicker:

Machtigingen toevoegen aan AndroidManifest.xml:

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

Basaal gebruik

De FolderPicker kan op de volgende manier worden toegevoegd aan een .NET MAUI-toepassing.

Machtigingen aanvragen

Ontwikkelaars moeten handmatig machtigingen aanvragen.StorageRead:

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

Map kiezen

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

Map

De Folder record vertegenwoordigt een map in het bestandssysteem. Hiermee worden de volgende eigenschappen gedefinieerd:

  • Het pad bevat een mappad.
  • De naam bevat een mapnaam.

MapKiezerResultaat

Slaat gegevens op van PickAsync.

Eigenschappen

Vastgoed Typologie Description
Map Folder Hiermee haalt u de Folder op die de geselecteerde map in het bestandssysteem vertegenwoordigt.
Exception Exception Hiermee wordt de Exception optie opgehaald als de selectiebewerking is mislukt.
IsSuccesvol bool Hiermee wordt een waarde opgehaald die bepaalt of de bewerking is geslaagd.

Methods

Methode Description
EnsureSuccess Controleert of de selectiebewerking is geslaagd.

Waarschuwing

EnsureSuccess genereert een Exception als de pick-bewerking is mislukt.

Methods

Methode Description
PickAsync Vraagt om toestemming en staat het selecteren van een map in het bestandssysteem toe.

Afhankelijkheidsregistratie

Als u service wilt injecteren, moet u deze eerst registreren. Bijwerken MauiProgram.cs met de volgende wijzigingen:

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

U kunt nu de service als volgt injecteren:

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

Zie de Microsoft-documentatie voor meer informatie over hoe u een CancellationToken kunt verstrekken.

Voorbeelden

U vindt een voorbeeld van FolderPicker in actie in de voorbeeldtoepassing .NET MAUI Community Toolkit.

API

U vindt de broncode voor FolderPicker in de .NET MAUI Community Toolkit GitHub-opslagplaats.