Udostępnij za pośrednictwem


Xamarin.Essentials: Selektor plików

Klasa FilePicker umożliwia użytkownikowi wybranie jednego lub wielu plików z urządzenia.

Rozpocznij

Aby rozpocząć korzystanie z tego interfejsu API, przeczytaj przewodnik wprowadzający , Xamarin.Essentials aby upewnić się, że biblioteka jest prawidłowo zainstalowana i skonfigurowana w projektach.

Aby uzyskać dostęp do funkcji FilePicker , wymagana jest następująca konfiguracja specyficzna dla platformy.

Nie jest wymagana żadna dodatkowa konfiguracja.

Napiwek

Wszystkie metody muszą być wywoływane w wątku interfejsu użytkownika, ponieważ kontrole uprawnień i żądania są automatycznie obsługiwane przez Xamarin.Essentialsprogram .

Wybierz plik

FilePicker.PickAsync() metoda umożliwia użytkownikowi wybranie pliku z urządzenia. Podczas wywoływania metody można określić inny PickOptions sposób, aby określić tytuł do wyświetlenia, a typy plików, które użytkownik może wybrać. Domyślnie

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

Domyślne typy plików są dostarczane z elementami FilePickerFileType.Images, FilePickerFileType.Pngi FilePickerFilerType.Videos. Można określić niestandardowe typy plików podczas tworzenia PickOptions i można je dostosować na platformę. Na przykład poniżej przedstawiono sposób określania określonych typów plików komiksowych:

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

Wybierz wiele plików

Jeśli chcesz, aby użytkownik wybrał wiele plików, możesz wywołać metodę FilePicker.PickMultipleAsync() . Parametr przyjmuje PickOptions również jako parametr, aby określić dodatkowe informacje. Wyniki są takie same jak PickAsync, ale zamiast pojedynczego FileResult IEnumerable<FileResult> zwracana jest wartość , którą można iterować.

Napiwek

Właściwość FullPath nie zawsze zwraca ścieżkę fizyczną do pliku. Aby pobrać plik, użyj OpenReadAsync metody .

Różnice między platformami

  • Brak różnic między platformami.

interfejs API