Klasör Seçici

, FolderPicker dosya sisteminden bir klasör seçme olanağı sağlar.

için FolderPickeraşağıdaki önkoşullar gereklidir:

AndroidManifest.xml'a izinler ekleyin:

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

Temel kullanım

.NET MAUI uygulamasına FolderPicker şu şekilde eklenebilir.

İzin isteme

Geliştiricilerin Permissions.StorageRead'i el ile istemesi gerekir:

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

Klasör seç

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

Klasör

Kayıt, Folder dosya sistemindeki bir klasörü temsil eder. Aşağıdaki özellikleri tanımlar:

  • Yol bir Klasör yolu içerir.
  • Ad bir Klasör adı içerir.

KlasörSeçiciSonucu

PickAsync'den bilgileri depolar.

Özellikler

Mülkiyet Türü Description
Klasör Folder Folder Dosya sisteminde seçili klasörü temsil eden öğesini alır.
Exception Exception Seçme işlemi başarısız olduğunda Exception değerini alır.
BaşarılıMı bool İşlemin başarılı olup olmadığını belirleyen bir değer alır.

Methods

Yöntem Description
EnsureSuccess Seçme işleminin başarılı olup olmadığını doğrular.

Uyarı

EnsureSuccess seçme işlemi başarısız olursa bir Exception fırlatır.

Methods

Yöntem Description
PickAsync İzin ister ve dosya sisteminde bir klasör seçmeye izin verir.

Bağımlılık Kaydı

Hizmeti enjekte etmek istiyorsanız, önce onu kaydettirmeniz gerekir. Sonraki değişikliklerle güncelleştirin MauiProgram.cs :

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

Artık hizmeti şu şekilde ekleyebilirsiniz:

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

Sağlama hakkında daha fazla ayrıntı için CancellationTokenMicrosoft belgelerine bakın.

Örnekler

nda bunun çalışma halinde bir örneğini bulabilirsiniz.

API

FolderPicker üzerinde bulabilirsiniz.