Condividi tramite


Xamarin.Essentials: Selezione file

La classe FilePicker consente a un utente di selezionare uno o più file dal dispositivo.

Operazioni preliminari

Per iniziare a usare questa API, leggere la guida introduttiva per Xamarin.Essentials assicurarsi che la libreria sia installata e configurata correttamente nei progetti.

Per accedere alla funzionalità FilePicker , è necessaria la configurazione specifica della piattaforma seguente.

Non è necessaria alcuna configurazione aggiuntiva.

Suggerimento

Tutti i metodi devono essere chiamati nel thread dell'interfaccia utente perché i controlli delle autorizzazioni e le richieste vengono gestiti automaticamente da Xamarin.Essentials.

Seleziona file

FilePicker.PickAsync() il metodo consente all'utente di selezionare un file dal dispositivo. È possibile specificare diversi quando PickOptions si chiama il metodo consentendo di specificare il titolo da visualizzare e i tipi di file che l'utente può selezionare. Per impostazione predefinita

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;
}

I tipi di file predefiniti vengono forniti con FilePickerFileType.Images, FilePickerFileType.Pnge FilePickerFilerType.Videos. È possibile specificare tipi di file personalizzati durante la PickOptions creazione di e possono essere personalizzati per ogni piattaforma. Ad esempio, ecco come specificare tipi di file comici specifici:

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,
};

Selezionare più file

Se si desidera che l'utente scegli più file, è possibile chiamare il FilePicker.PickMultipleAsync() metodo . Accetta PickOptions anche come parametro per specificare informazioni aggiuntive. I risultati sono uguali a PickAsync, ma invece di un singolo FileResult IEnumerable<FileResult> oggetto viene restituito che può essere eseguito l'iterazione.

Suggerimento

La FullPath proprietà non restituisce sempre il percorso fisico del file. Per ottenere il file, usare il OpenReadAsync metodo .

Differenze tra le piattaforme

  • Non esistono differenze per questa piattaforma.

API