Xamarin.Essentials: Dosya Seçici
FilePicker sınıfı, bir kullanıcının cihazdan tek veya birden çok dosya seçmeye olanak sağlar.
başlarken
Bu API'yi kullanmaya başlamak için kitaplığın projelerinize düzgün bir şekilde yük olduğundan ve ayar olduğundan emin olmak için başlangıç kılavuzunu okuyun.
FilePicker işlevine erişmek için aşağıdaki platforma özgü kurulum gereklidir.
ReadExternalStorageİzin gereklidir ve Android projesinde yapılandırılması gerekir. Bu, aşağıdaki yollarla eklenebilir:
Properties klasörünün altındaki AssemblyInfo.csdosyasını açın ve şunları ekleyin:
[assembly: UsesPermission(Android.Manifest.Permission.ReadExternalStorage)]
VEYA Android Bildirimini Güncelleştir:
Özellikler AndroidManifest.xmldosyanın altındaki dosyanın adını açın ve bildirim düğümünün içine aşağıdakini ekleyin.
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Veya Android projesine sağ tıklayın ve projenin özelliklerini açın. Android Bildirimi altında Gerekli izinler: alanına bakın ve bu izni denetleyin. Bu, dosyanın AndroidManifest.xml güncelleştirmesi.
İpucu
İzin denetimleri ve istekleri tarafından otomatik olarak işlenir olduğundan, tüm yöntemler kullanıcı arabirimi iş parçacığında Xamarin.Essentials çağrılır.
Dosya Seç
FilePicker.PickAsync() yöntemi, kullanıcınıza cihazdan bir dosya seçmeyi sağlar. Görüntülemek istediğiniz başlığı ve kullanıcının seçmesine izin verilen dosya türlerini belirtmenize olanak sağlayan yöntemini çağırarak farklı PickOptions bir yöntem kullanabilirsiniz. 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.Images ve FilePickerFileType.Png ile FilePickerFilerType.Videos sağlanır. Özel dosya türlerini oluştururken belirtebilirsiniz PickOptions ve bunlar platforma göre özelleştirilebilir. Örneğin, belirli dosya türlerini nasıl 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çme
Kullanıcınıza birden çok dosya seçmesi için yöntemini FilePicker.PickMultipleAsync() çağırabilirsiniz. Ayrıca, ek PickOptions bilgi belirtmek için parametresi olarak alır. Sonuçlar ile PickAsync aynıdır, ancak yinelenmiş tek bir FileResult yerine IEnumerable<FileResult> döndürülür.
İpucu
FullPathözelliği her zaman dosyanın fiziksel yolunu geri dönmez. Dosyayı almak için yöntemini OpenReadAsync kullanın.
Platform Farkları
API
- Xamarin.Essentials /FilePicker" data-linktype="external">FilePicker kaynak kodu
- FilePicker API belgeleri