Xamarin.Essentials: Sélecteur de fichiers
La classe FilePicker permet à un utilisateur de choisir un ou plusieurs fichiers à partir de l’appareil.
Bien démarrer
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()
permet à votre utilisateur de choisir un fichier à partir de l’appareil. Vous pouvez spécifier différents 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é à sélectionner. 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 fichiers 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 de PickOptions
et ils peuvent être personnalisés par plateforme. Par exemple, voici comment spécifier des types de fichiers de bandes dessinées 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,
};
Sélectionner 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 identiques PickAsync
à , mais au lieu d’un seul FileResult
est retourné un IEnumerable<FileResult>
qui peut être itéré sur.
Conseil
La FullPath
propriété ne retourne pas toujours le chemin d’accès physique au fichier. Pour obtenir le fichier, utilisez la OpenReadAsync
méthode .