Xamarin.Essentials: Výběr souboru

Třída FilePicker umožňuje uživateli vybrat jeden nebo více souborů ze zařízení.

Začínáme

Pokud chcete začít používat toto rozhraní API, přečtěte si úvodní příručkuXamarin.Essentials, abyste měli jistotu, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.

Pro přístup k funkcím FilePickeru se vyžaduje následující nastavení specifické pro platformu.

Nevyžaduje se žádné další nastavení.

Tip

Všechny metody musí být volána ve vlákně uživatelského rozhraní, protože kontroly oprávnění a požadavky jsou automaticky zpracovávány Xamarin.Essentials.

Vybrat soubor

FilePicker.PickAsync() metoda umožňuje uživateli vybrat soubor ze zařízení. Při volání metody můžete určit PickOptions název, který se má zobrazit, a typy souborů, které uživatel může vybrat. Výchozí

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;
}

Výchozí typy souborů jsou k dispozici s FilePickerFileType.Images, FilePickerFileType.Pnga FilePickerFilerType.Videos. Při vytváření PickOptions můžete zadat vlastní typy souborů, které lze přizpůsobit pro každou platformu. Tady je příklad, jak byste zadali konkrétní typy souborů com:

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,
};

Výběr více souborů

Pokud chcete, aby uživatel vybral více souborů, můžete metodu FilePicker.PickMultipleAsync() volat. Zadává také PickOptions další informace jako parametr. Výsledky jsou stejné jako PickAsyncvýsledky, ale místo jednoho FileResult je vrácena IEnumerable<FileResult> hodnota, která se dá iterated přehodnotit.

Tip

Vlastnost FullPath nevrací vždy fyzickou cestu k souboru. K získání souboru použijte metodu OpenReadAsync .

Rozdíly mezi platformami

  • Žádné rozdíly mezi platformami.

rozhraní API