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.
İ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.Png
ve FilePickerFilerType.Videos
ile FilePickerFileType.Images
sağ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
.