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.

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() 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.Pnget 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 .

Différences entre les plateformes

  • Aucune différence entre les plateformes.

API