Partager via


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.

Aucune configuration supplémentaire n’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.

Différences entre les plateformes

  • Aucune différence entre les plateformes.

API