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.
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.Png
a 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 PickAsync
vý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
.