Класс FilePicker позволяет пользователю выбирать один или несколько файлов с устройства.
Начало работы
Чтобы начать использовать этот API, прочитайте руководство по началу работы с Xamarin.Essentials и убедитесь, что библиотека правильно установлена и настроена в ваших проектах.
Для доступа к функциям FilePicker требуется следующая настройка, специфичная для данной платформы.
Android
Дополнительная настройка не требуется.
iOS
Чтобы включить возможности iCloud в файлообменнике на iOS, выполните следующие действия.
UWP
Дополнительная настройка не требуется.
Совет. Все методы должны вызываться в потоке пользовательского интерфейса, поскольку проверка и запрос разрешений автоматически обрабатываются Xamarin.Essentials.
Выбор файла
Метод FilePicker.PickAsync() позволяет пользователю выбрать файл с устройства. При вызове метода вы можете задать различные PickOptions, позволяющие указать отображаемый заголовок и типы файлов, которые может выбрать пользователь. По умолчанию
async TaskPickAndShow(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; }
Типы файлов по умолчанию представлены FilePickerFileType.Images, FilePickerFileType.Png и FilePickerFilerType.Videos. При создании PickOptions можно указать пользовательские типы файлов, которые могут быть настроены для каждой платформы. Например, вот как можно указать конкретные типы файлов комиксов:
var customFileType = new FilePickerFileType(new Dictionary<_DevicePlatform2c_>> { { 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, };
Выбор нескольких файлов
Если вы хотите, чтобы пользователь мог выбрать несколько файлов, можно вызвать метод FilePicker.PickMultipleAsync(). Он также принимает в качестве параметра PickOptions для указания дополнительной информации. Результаты работы аналогичны PickAsync, но вместо одного результата FileResult возвращается IEnumerable
Совет. Свойство FullPath не всегда возвращает физический путь к файлу. Чтобы получить файл, используйте метод OpenReadAsync.
Различия в платформах
Различия в платформах отсутствуют.