Bagikan melalui


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.

Tidak diperlukan penyiapan tambahan.

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.Pngdan 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 .

Perbedaan Platform

  • Tidak ada perbedaan platform.

API