Xamarin.Essentials: Dateiauswahl
Die FilePicker-Klasse ermöglicht es Benutzern, eine einzelne oder mehrere Dateien vom Gerät auszuwählen.
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.
Tipp
Alle Methoden müssen im UI-Thread aufgerufen werden, da Überprüfungen und Anforderungen für Berechtigungen automatisch von Xamarin.Essentials behandelt werden.
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,
};
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.