FolderPicker

FolderPicker menyediakan kemampuan untuk memilih folder dari sistem file.

Prasyarat berikut diperlukan untuk FolderPicker:

Tambahkan izin ke AndroidManifest.xml:

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

Penggunaan dasar

FolderPicker dapat ditambahkan ke aplikasi .NET MAUI dengan cara berikut.

Meminta izin

Pengembang harus meminta izin StorageRead secara manual.

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

Pilih folder

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

Folder

Rekaman Folder mewakili folder dalam sistem file. Ini mendefinisikan properti berikut:

  • Jalur ini berisi jalur folder.
  • Nama mengandung nama folder.

HasilPemilihFolder

Menyimpan informasi dari PickAsync.

Karakteristik

Harta benda Tipe Description
Folder Folder Mendapatkan Folder yang mewakili folder yang dipilih dalam sistem file.
Pengecualian Exception Mendapatkan Exception jika operasi pemilihan gagal.
Berhasil bool Mendapatkan nilai yang menentukan apakah operasi berhasil.

Methods

Metode Description
PastikanSukses Memverifikasi apakah operasi pemilihan berhasil.

Peringatan

EnsureSuccess akan melempar Exception jika operasi pemilihan tidak berhasil.

Methods

Metode Description
PickAsync Meminta izin dan mengizinkan pemilihan folder dalam sistem file.

Pendaftaran Dependensi

Jika Anda ingin menyuntikkan layanan, Anda harus mendaftarkannya terlebih dahulu. Perbarui MauiProgram.cs dengan perubahan berikutnya:

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

Sekarang Anda dapat menyuntikkan layanan seperti ini:

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

Untuk detail selengkapnya tentang cara memberikan CancellationToken rujukan ke dokumentasi Microsoft.

Contoh

Anda dapat menemukan contoh FolderPicker dalam tindakan di Aplikasi Sampel Toolkit Komunitas .NET MAUI.

API

Anda dapat menemukan kode sumber untuk FolderPicker di repositori GitHub .NET MAUI Community Toolkit.