Xamarin.Essentials: Pemilih File
Kelas FilePicker memungkinkan pengguna memilih satu atau beberapa file dari perangkat.
Memulai
Untuk mulai menggunakan API ini, baca panduan memulai untuk Xamarin.Essentials memastikan pustaka diinstal dan disiapkan dengan benar di proyek Anda.
Untuk mengakses fungsionalitas FilePicker , diperlukan penyiapan spesifik platform berikut.
Tip
Semua metode harus dipanggil pada utas UI karena pemeriksaan izin dan permintaan secara otomatis ditangani oleh Xamarin.Essentials.
Pilih File
FilePicker.PickAsync()
metode memungkinkan pengguna Anda untuk memilih file dari perangkat. Anda dapat spesifik berbeda PickOptions
saat memanggil metode yang memungkinkan Anda menentukan judul untuk ditampilkan dan jenis file yang diizinkan untuk dipilih pengguna. Secara default
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;
}
Jenis file default disediakan dengan FilePickerFileType.Images
, , FilePickerFileType.Png
dan FilePickerFilerType.Videos
. Anda dapat menentukan jenis file kustom saat membuat PickOptions
dan dapat disesuaikan per platform. Misalnya di sini adalah bagaimana Anda akan menentukan jenis file komik tertentu:
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,
};
Pilih Beberapa File
Jika Anda ingin pengguna memilih beberapa file, Anda dapat memanggil metode .FilePicker.PickMultipleAsync()
Ini juga diperlukan PickOptions
sebagai parameter untuk menentukan informasi tambahan. Hasilnya sama dengan PickAsync
, tetapi alih-alih satu FileResult
yang IEnumerable<FileResult>
dikembalikan yang dapat diulang.
Tip
Properti FullPath
tidak selalu mengembalikan jalur fisik ke file. Untuk mendapatkan file, gunakan OpenReadAsync
metode .