Xamarin.Essentials: Selektor plików
Klasa FilePicker umożliwia użytkownikowi wybranie jednego lub wielu plików z urządzenia.
Rozpocznij
Aby rozpocząć korzystanie z tego interfejsu API, przeczytaj przewodnik wprowadzający , Xamarin.Essentials aby upewnić się, że biblioteka jest prawidłowo zainstalowana i skonfigurowana w projektach.
Aby uzyskać dostęp do funkcji FilePicker , wymagana jest następująca konfiguracja specyficzna dla platformy.
Nie jest wymagana żadna dodatkowa konfiguracja.
Napiwek
Wszystkie metody muszą być wywoływane w wątku interfejsu użytkownika, ponieważ kontrole uprawnień i żądania są automatycznie obsługiwane przez Xamarin.Essentialsprogram .
Wybierz plik
FilePicker.PickAsync()
metoda umożliwia użytkownikowi wybranie pliku z urządzenia. Podczas wywoływania metody można określić inny PickOptions
sposób, aby określić tytuł do wyświetlenia, a typy plików, które użytkownik może wybrać. Domyślnie
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;
}
Domyślne typy plików są dostarczane z elementami FilePickerFileType.Images
, FilePickerFileType.Png
i FilePickerFilerType.Videos
. Można określić niestandardowe typy plików podczas tworzenia PickOptions
i można je dostosować na platformę. Na przykład poniżej przedstawiono sposób określania określonych typów plików komiksowych:
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,
};
Wybierz wiele plików
Jeśli chcesz, aby użytkownik wybrał wiele plików, możesz wywołać metodę FilePicker.PickMultipleAsync()
. Parametr przyjmuje PickOptions
również jako parametr, aby określić dodatkowe informacje. Wyniki są takie same jak PickAsync
, ale zamiast pojedynczego FileResult
IEnumerable<FileResult>
zwracana jest wartość , którą można iterować.
Napiwek
Właściwość FullPath
nie zawsze zwraca ścieżkę fizyczną do pliku. Aby pobrać plik, użyj OpenReadAsync
metody .
Różnice między platformami
- Brak różnic między platformami.