Share via


Xamarin.Essentials: Dosya Seçici

FilePicker sınıfı, kullanıcının cihazdan tek veya birden çok dosya seçmesine olanak tanır.

Kullanmaya başlayın

Bu API'yi kullanmaya başlamak için kitaplığın projelerinizde düzgün yüklendiğinden ve ayarlandığından emin olmak için Xamarin.Essentials kullanmaya başlama kılavuzunu okuyun.

FilePicker işlevine erişmek için aşağıdaki platforma özgü kurulum gereklidir.

Ek kurulum gerekmez.

İpucu

İzin denetimleri ve istekleri tarafından Xamarin.Essentialsotomatik olarak işlenmek için ui iş parçacığında tüm yöntemler çağrılmalıdır.

Dosya Seç

FilePicker.PickAsync() yöntemi, kullanıcınızın cihazdan bir dosya seçmesini sağlar. Görüntülenecek başlığı ve kullanıcının seçmesine izin verilen dosya türlerini belirtmenize olanak tanıyan yöntemi çağırırken belirli bir farklılık PickOptions elde edebilirsiniz. Varsayılan olarak

async Task<FileResult> PickAndShow(PickOptions options)
{
    try
    {
        var result = await FilePicker.PickAsync(options);
        if (result != null)
        {
            Text = $"File Name: {result.FileName}";
            if (result.FileName.EndsWith("jpg", StringComparison.OrdinalIgnoreCase) ||
                result.FileName.EndsWith("png", StringComparison.OrdinalIgnoreCase))
            {
                var stream = await result.OpenReadAsync();
                Image = ImageSource.FromStream(() => stream);
            }
        }
        
        return result;
    }
    catch (Exception ex)
    {
        // The user canceled or something went wrong
    }
    
    return null;
}

Varsayılan dosya türleri , FilePickerFileType.Pngve FilePickerFilerType.Videosile FilePickerFileType.Imagessağlanır. oluştururken PickOptions özel dosya türleri belirtebilirsiniz ve bunlar platform başına özelleştirilebilir. Örneğin, belirli çizgi roman dosya türlerini şu şekilde belirtebilirsiniz:

var customFileType =
    new FilePickerFileType(new Dictionary<DevicePlatform, IEnumerable<string>>
    {
        { DevicePlatform.iOS, new[] { "public.my.comic.extension" } }, // or general UTType values
        { DevicePlatform.Android, new[] { "application/comics" } },
        { DevicePlatform.UWP, new[] { ".cbr", ".cbz" } },
        { DevicePlatform.Tizen, new[] { "*/*" } },
        { DevicePlatform.macOS, new[] { "cbr", "cbz" } }, // or general UTType values
    });
var options = new PickOptions
{
    PickerTitle = "Please select a comic file",
    FileTypes = customFileType,
};

Birden Çok Dosya Seç

Kullanıcınızın birden çok dosya seçmesini istiyorsanız yöntemini çağırabilirsiniz FilePicker.PickMultipleAsync() . Ayrıca, ek bilgileri belirtmek için parametre olarak da alır PickOptions . Sonuçlar ile aynıdır PickAsync, ancak tek FileResult bir yerine yinelenebilir bir IEnumerable<FileResult> döndürülür.

İpucu

FullPath özelliği her zaman dosyanın fiziksel yolunu döndürmez. Dosyayı almak için yöntemini kullanın OpenReadAsync .

Platform Farkları

  • Platform farkı yoktur.

API