Dostęp do danych i plików w aplikacjach Modern UI - Dostęp do plików przy użyciu przeglądarki  Udostępnij na: Facebook

Tłumaczenie na podstawie Quickstart: Accessing files with file pickers: Konrad Bojarczuk

Opublikowano: 2012-07-17

W tym odcinku dowiesz się, w jaki sposób używać przeglądarki plików, aby umożliwić użytkownikom wybranie odpowiedniej ilości plików przy starcie aplikacji.

Wymagania

Musisz rozumieć asynchroniczne programowanie aplikacji typu Modern UI w C# i Visual Basic. Jeśli chcesz nauczyć się pisać asynchroniczne aplikacje, zobacz Quickstart: Using the await operator for asynchronous programming.

Interfejs przeglądarki pików

W każdej przeglądarce występują obszary w górnej i dolnej części ekranu, których przeznaczeniem jest wyświetlenie informacji, które będą w stanie pomóc użytkownikowi w pracy z aplikacją i mają zapewnić spójność w działaniu operacji zapisu i odczytu plików.

Informacje wykorzystywane w celu wydajniejszej pracy z aplikacją to: aktualna lokalizacja (wyświetlona w przeglądarce plików, znajdująca się w lewym górnym rogu), lista elementów (które zostały wybrane przez użytkownika), rozwijana lista miejsc (które użytkownik może przeglądać - w tym celu należy wybrać daszek w lewym górnym rogu aplikacji). Na ekranie umieszczonym poniżej została przedstawiona przeglądarka plików, która została wywołana przez aplikację e-mail, aby umożliwić użytkownikowi wybór zdjęć (mimo że użytkownik nie wybrał żadnego zdjęcia w poniższym przykładzie).

Użytkownik może wyświetlić rozwijaną listę dostępnych miejsc, takich jak lista pokazana na obrazku, poprzez wybranie daszka widocznego w lewym górnym rogu.

Wyświetlone miejsca zawierają lokalizacje systemu plików (biblioteka Muzyki, Pobrane) i aplikacje w systemie użytkownika, które są zintegrowane z File Open Picker lub File Save Picker.

Jak pracuje przeglądarka plików

Przeglądarka plików to interfejs, który pomaga Twojej aplikacji w interakcjach z systemem i innymi aplikacjami. Jeśli inna aplikacja, np. SkyDrive używa File Open Picker lub File Save Picker,  aby udostępnić pliki lub ich lokalizację, to użytkownik będzie miał dostęp do tych plików i miejsc przez przeglądarkę plików.

Jeśli wywołasz przeglądarkę plików w swojej aplikacji (aplikacja wywołująca) tak, żeby użytkownik aplikacji mógł wybrać plik, który będzie otwarty, to przeglądarka plików będzie współdziała z systemem i innymi aplikacjami, aby użytkownik mógł poruszać się pomiędzy plikami i wybierać je. Gdy użytkownik wybierze plik, przeglądarka zwróci go do Twojej aplikacji. Diagram poniżej ilustruje proces wyboru pliku z innej aplikacji.

Utwórz i dostosuj do własnych potrzeb przeglądarkę plików

Używaj FileOpenPicker, gdy użytkownik wybierze plik, i FolderPicker, gdy wybierze folder.

Przykład kodu aplikacji implementującej przeglądarkę plików demonstruje, jak utworzyć i dostosować obiekt typu FileOpenPicker.

Poniżej przedstawiono fragment kodu odpowiedzialnego za konfigurację przeglądarki plików:

C#

FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");

Powinieneś ustawić właściwości FileOpenPicker, które są istotne dla Ciebie i Twojej aplikacji. Jeśli chcesz uzyskać wskazówki, które pomogą Tobie zdecydować, jak dostosować przeglądarkę plików, zobacz Guidelines and checklist for file pickers.

Przykładowy kod przeglądarki plików pozwala dostosować ją, używając trzech właściwości FileOpenPicker: ViewMode, SuggestedLocation i FileTypeFilter.

Szczegółowe informacje o dostosowywaniu FileOpenPicker

1.    W celu uzyskania bogatego w detale graficznego podglądu plików ustawiamy OpenPicker, ViewMode na miniaturę PickerViewMode, wartości enum, w przykładzie poniżej:

openPicker.ViewMode = PickerViewMode.Thumbnail;

Powinieneś rozważyć ustawienie ViewMode do PickerViewMode.Thumbnail, gdy używasz przeglądarki plików do podglądu zdjęć lub filmów. W innych przypadkach użyjPickerViewMode.List.

  1. Wyświetlamy pliki obrazów użytkownika, w związku z czym, w przykładzie ustawione zostaną OpenPicker, SuggestedStartLocation (do biblioteki zdjęć, używając właściwości KnownFolders) i PicturesLibrary:

C#

openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;

Należy ustawić SuggestedStartLocation do lokalizacji systemu plików, który jest przeznaczony dla tego rodzaju pliku, z którym pracujemy. Jeśli użytkownik wybierze muzykę, zdjęcia lub filmy, ustaw lokalizację startową na bibliotekę muzyki, zdjęć lub filmów, w zależności od działania użytkownika.

Dla wszystkich innych rodzajów plików ustaw domyślną lokalizację startową na bibliotekę dokumentów. Pamiętaj o tym, że ustawiasz tylko i wyłącznie lokalizację początkową. Użytkownik korzystający z Twojej aplikacji może swobodnie poruszać się po innych lokalizacjach podczas pracy z przeglądarką plików.

  1. Używamy metody Add na liście zwróconej z właściwości OpenPicker, FileTypeFilter, aby dokładnie sprecyzować, jakie rozszerzenia plików graficznych będą obsługiwane w przeglądarce plików:
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");

Rozważ dokładne określenie typu plików, które będą wyświetlane w przeglądarce, aby pomóc wyświetlić te, które są istotne. Jeśli Twoja aplikacja to odtwarzacz filmów, to możesz użyć właściwości FileTypeFilter, aby upewnić się, że pliki wyświetlone w przeglądarce są we właściwym formacie, obsługiwanym przez Twój odtwarzacz ( bazując na rozszerzeniu pliku wideo).

W jaki sposób przeglądarka ma wybrać jeden plik?

Po tym, jak utworzysz i dostosujesz przeglądarkę, pozwól użytkownikom wybrać jeden plik przez wywołanie await FileOpenPicker, PickMultipleFilesAsync. Gdy użytkownik wybierze plik FileOpenPicker, PickSingleFileAsync zwróci obiekt StorageFile, który reprezentuje wybrany plik.

Przykład kodu przeglądarki plików pokazuje, jak wyświetlić przeglądarkę w taki sposób, który umożliwia użytkownikom wybór jednego pliku:

C#

StorageFile file = await openPicker.PickSingleFileAsync();
if (null != file)
{
    // Application now has read/write access to the picked file”
    Scenario1FileName.Text = file.Name;
}
else
{
    Scenario1FileName.Text = "File was not returned";
}

W jaki sposób przeglądarka ma wybrać kilka plików?

Aby umożliwić użytkownikom Twojej aplikacji wybór wielu plików, wywołaj await FileOpenPicker.PickMultipleFilesAsync. Gdy użytkownik wybierze wiele plików FileOpenPicker.PickMultipleFilesAsync, zwróci listę obiektów StorageFile, które reprezentują wybrane pliki.

Przykład kodu przeglądarki plików pokazuje, w jaki sposób wyświetlić przeglądarkę, aby użytkownicy mogli wybrać wiele plików i jak uzyskać listę wybranych plików do późniejszego przetworzenia:

IReadOnlyList<StorageFile> files = await openPicker.PickMultipleFilesAsync();
if (files.Count > 0)
{
    // Application now has read/write access to the picked file(s)
    foreach (StorageFile file in files)
    {
        Scenario2FileName.Text += file.Name + "\n";
    }
}
else
{
    Scenario2FileName.Text = "No files were returned";
}

Podsumowanie i następne kroki

Jeśli używasz kodu źródłowego, który jest podobny do pokazanego w tym poradniku, to Twoja aplikacja powinna wyświetlić użytkownikom przeglądarkę plików i pozwolić im wybrać jeden plik, który aplikacja będzie mogła otworzyć, lub kilka.

Wskazówka - Gdy aplikacja ma dostęp do pliku lub folderu przez przeglądarkę plików, dodaj tą pozycję, która jest na liście futureAccessList lub mostRecentlyUsedList, aby mieć nad nią kontrolę. Jeśli chcesz wiedzieć więcej na temat używania tych list, zobacz Wyświetlanie ostatnio używanych plików i folderów.

Jeśli chcesz uzyskać informacje na temat zapisu i odczytu plików, zapoznaj się z artykułem Odczyt i zapis pliku.

Przeczytaj  Zapis pliku przy użyciu przeglądarki, aby dowiedzieć się więcej na temat wywołania w przeglądarce do zapisu plików.

Jeśli chcesz, aby Twoja aplikacja dostarczała pliki, miejsce zapisu lub aktualizacje plików innym aplikacjom, zobacz Quickstart: Integrating with file picker contracts.

Powiązane tematy:

Odnośniki: