Xamarin.Essentials: Dateiauswahl

Die FilePicker-Klasse ermöglicht es Benutzern, eine einzelne oder mehrere Dateien vom Gerät auszuwählen.

Erste Schritte

Lesen Sie zum Einstieg in die Verwendung dieser API den Leitfaden mit ersten Schritte für Xamarin.Essentials, um sicherzustellen, dass die Bibliothek ordnungsgemäß installiert und in Ihren Projekten eingerichtet ist.

Für den Zugriff auf die FilePicker-Funktionen ist die folgende plattformspezifische Einrichtung erforderlich.

Es ist kein zusätzliches Setup erforderlich.

Tipp

Alle Methoden müssen im UI-Thread aufgerufen werden, da Überprüfungen und Anforderungen für Berechtigungen automatisch von Xamarin.Essentials behandelt werden.

Auswählen einer Datei

Die Methode FilePicker.PickAsync() ermöglicht es Benutzern, eine Datei vom Gerät auszuwählen. Sie können verschiedene PickOptions-Klassen beim Aufrufen der Methode festlegen, sodass Sie den anzuzeigenden Titel und die Dateitypen festlegen können, die der Benutzer auswählen darf. Standardeinstellung

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

Standarddateitypen werden mit FilePickerFileType.Images, FilePickerFileType.Png und FilePickerFilerType.Videos angegeben. Sie können benutzerdefinierte Dateitypen beim Erstellen der PickOptions-Klasse angeben. Diese können pro Plattform angepasst werden. Hier sehen Sie ein Beispiel dafür, wie Sie spezifische Comic-Dateitypen festlegen:

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

Auswählen mehrerer Dateien

Wenn Sie Benutzern das Auswählen mehrerer Dateien erlauben möchten, können Sie die Methode FilePicker.PickMultipleAsync() aufrufen. Diese akzeptiert den Parameter PickOptions zum Festlegen zusätzlicher Informationen. Die Ergebnisse sind identisch mit PickAsync, anstelle einer einzelnen FileResult-Klasse wird eine IEnumerable<FileResult>-Schnittstelle zurückgegeben, die durchlaufen werden kann.

Tipp

Die FullPath-Eigenschaft gibt nicht immer den physischen Pfad zur Datei zurück. Um die Datei abzurufen, verwenden Sie die OpenReadAsync-Methode.

Plattformunterschiede

  • Keine Plattformunterschiede.

API