Xamarin.Essentials: Sélecteur de fichiers
La classe FilePicker permet à un utilisateur de choisir un ou plusieurs fichiers à partir de l’appareil.
Démarrage
Pour commencer à utiliser cette API, lisez le guide de prise en main pour Xamarin.Essentials vous assurer que la bibliothèque est correctement installée et configurée dans vos projets.
Pour accéder à la fonctionnalité FilePicker , la configuration spécifique à la plateforme suivante est requise.
Conseil
Toutes les méthodes doivent être appelées sur le thread d’interface utilisateur, car les vérifications d’autorisation et les demandes sont gérées automatiquement par Xamarin.Essentials.
Sélectionner un fichier
FilePicker.PickAsync()
la méthode permet à votre utilisateur de choisir un fichier à partir de l’appareil. Vous pouvez spécifier des valeurs différentes PickOptions
lors de l’appel de la méthode, ce qui vous permet de spécifier le titre à afficher et les types de fichiers que l’utilisateur est autorisé à choisir. Par défaut
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;
}
Les types de fichier par défaut sont fournis avec FilePickerFileType.Images
, FilePickerFileType.Png
et FilePickerFilerType.Videos
. Vous pouvez spécifier des types de fichiers personnalisés lors de la création et PickOptions
ils peuvent être personnalisés par plateforme. Par exemple, voici comment spécifier des types de fichiers comics spécifiques :
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,
};
Choisir plusieurs fichiers
Si vous souhaitez que votre utilisateur sélectionne plusieurs fichiers, vous pouvez appeler la FilePicker.PickMultipleAsync()
méthode. Il prend également en PickOptions
tant que paramètre pour spécifier des informations supplémentaires. Les résultats sont les mêmes que PickAsync
, mais au lieu d’un seul un seul FileResult
est IEnumerable<FileResult>
retourné qui peut être itéré.
Conseil
La FullPath
propriété ne retourne pas toujours le chemin d’accès physique au fichier. Utilisez la méthode OpenReadAsync
pour obtenir le fichier.