Udostępnij za pomocą


Otwieranie plików i folderów za pomocą selektora

ważne interfejsy API

Uzyskiwanie dostępu do plików i folderów przez umożliwienie użytkownikowi interakcji z selektorem. Aby uzyskać dostęp do plików, można użyć klas FileOpenPicker i FileSavePicker, aby uzyskać dostęp do plików, a FolderPicker uzyskać dostęp do folderu.

Uwaga / Notatka

 Aby zapoznać się z kompletnym przykładem, zobacz przykład selektora plików .

Uwaga / Notatka

W aplikacji desktopowej (w tym aplikacjach WinUI) możesz użyć przestrzeni nazw Microsoft.Windows.Storage.Pickers, aby uzyskać dostęp do selektorów plików i folderów. Ta przestrzeń nazw jest dostępna w zestawie SDK aplikacji systemu Windows w wersji 1.8 lub nowszej. Interfejsy API w tej przestrzeni nazw są zaprojektowane tak, aby bezproblemowo współdziałały z aplikacjami WinUI, zapewniając spójne środowisko w różnych typach aplikacji.

Jednak w razie potrzeby nadal można użyć selektorów plików i folderów WinRT z Windows.Storage.Pickers. Jeśli aplikacja desktopowa wymaga podwyższenia uprawnień do uruchomienia, musisz zastosować inne podejście, ponieważ te interfejsy API nie są przeznaczone do użytku w aplikacjach z podwyższonymi uprawnieniami. Aby zapoznać się z przykładem, zobacz FileSavePicker.

Wymagania wstępne

Interfejs użytkownika selektora plików

Selektor plików wyświetla informacje dotyczące orientowania użytkowników i zapewnienia spójnego środowiska podczas otwierania lub zapisywania plików.

Te informacje obejmują:

  • Bieżąca lokalizacja
  • Element lub elementy wybrane przez użytkownika
  • Drzewo lokalizacji, do których użytkownik może przejść. Te lokalizacje obejmują lokalizacje systemu plików , takie jak folder Muzyka lub Pliki do pobrania, a także aplikacje implementujące kontrakt selektora plików (takie jak Aparat, Zdjęcia i Microsoft OneDrive).

Aplikacja poczty e-mail może wyświetlić selektor plików do wybrania załączników przez użytkownika.

selektor plików z dwoma plikami, które zostały wybrane do otwarcia.

Jak działają wybieraki

Za pomocą selektora aplikacja może uzyskiwać dostęp do plików i folderów oraz przeglądać je i zapisywać w systemie użytkownika. Aplikacja odbiera te wybory jako obiekty StorageFile i StorageFolder, na których można pracować.

Selektor używa jednego, ujednoliconego interfejsu, aby umożliwić użytkownikowi wybieranie plików i folderów z systemu plików lub innych aplikacji. Pliki wybrane z innych aplikacji są podobne do plików z systemu plików: są zwracane jako obiekty StorageFile. Ogólnie rzecz biorąc, aplikacja może działać na nich w taki sam sposób jak inne obiekty. Inne aplikacje udostępniają pliki, uczestnicząc w umowach selekcji plików. Jeśli chcesz, aby aplikacja dostarczała pliki, lokalizację zapisywania lub aktualizacje plików do innych aplikacji, zobacz Integrowanie z kontraktami selektora plików.

Możesz na przykład wywołać selektor plików w aplikacji, aby użytkownik mógł otworzyć plik. Dzięki temu twoja aplikacja staje się aplikacją wykonującą połączenia. Selektor plików współdziała z systemem i/lub innymi aplikacjami, aby umożliwić użytkownikowi nawigowanie i wybieranie pliku. Gdy użytkownik wybierze plik, selektor plików zwróci ten plik do aplikacji. Oto proces wybierania pliku z poziomu aplikacji dostarczającej, takiej jak OneDrive.

diagram przedstawiający proces uzyskiwania pliku przez jedną aplikację od innej aplikacji przy użyciu selektora plików jako interfejsu pomiędzy dwiema aplikacjami.

Wybierz pojedynczy plik: kompletna lista kodu

var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");

Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
    // Application now has read/write access to the picked file
    this.textBlock.Text = "Picked photo: " + file.Name;
}
else
{
    this.textBlock.Text = "Operation cancelled.";
}

Wybierz pojedynczy plik: krok po kroku

Użycie selektora plików obejmuje tworzenie i dostosowywanie obiektu selektora plików, a następnie wyświetlanie selektora plików, aby użytkownik mógł wybrać co najmniej jeden element.

  1. Tworzenie i dostosowywanie komponentu FileOpenPicker

    var picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
    picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
    picker.FileTypeFilter.Add(".jpg");
    picker.FileTypeFilter.Add(".jpeg");
    picker.FileTypeFilter.Add(".png");
    

    Ustaw właściwości obiektu selektora plików odpowiednie dla użytkowników i aplikacji.

    W tym przykładzie tworzony jest bogaty, wizualny ekran obrazów w dogodnej lokalizacji, z której użytkownik może wybrać, ustawiając trzy właściwości: ViewMode, SuggestedStartLocationi FileTypeFilter.

    • Ustawienie trybu widoku w trybie na tryb przeglądania PickerViewModewartość wyliczenia Thumbnail tworzy bogate, wizualne przedstawienie, przy użyciu miniatur zdjęć do reprezentowania plików w selektorze plików. Zrób to w celu wybrania plików wizualnych, takich jak obrazy lub filmy wideo. W przeciwnym razie użyj PickerViewMode.List. Hipotetyczna aplikacja poczty e-mail z Attach Picture lub Video i Attach Document features (Dołączanie dokumentów) ustawi ViewMode odpowiednią dla funkcji przed wyświetleniem selektora plików.

    • Ustawienie SuggestedStartLocation obrazów przy użyciu PickerLocationId.PicturesLibrary uruchamia użytkownika w lokalizacji, w której prawdopodobnie znajdą obrazy. Ustaw SuggestedStartLocation na lokalizację odpowiednią dla wybranego typu pliku, na przykład Muzyka, Obrazy, Filmy lub Dokumenty. Z lokalizacji początkowej użytkownik może przejść do innych lokalizacji.

    • Używanie FileTypeFilter do określania typów plików sprawia, że użytkownik koncentruje się na wybieraniu odpowiednich plików. Aby zastąpić poprzednie typy plików w fileTypeFilter nowymi wpisami, użyj ReplaceAll zamiast Dodaj.

  2. Pokaż FileOpenPicker

    • Aby wybrać jeden plik

      Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
      if (file != null)
      {
          // Application now has read/write access to the picked file
          this.textBlock.Text = "Picked photo: " + file.Name;
      }
      else
      {
          this.textBlock.Text = "Operation cancelled.";
      }
      
    • Aby wybrać wiele plików

      var files = await picker.PickMultipleFilesAsync();
      if (files.Count > 0)
      {
          StringBuilder output = new StringBuilder("Picked files:\n");
      
          // Application now has read/write access to the picked file(s)
          foreach (Windows.Storage.StorageFile file in files)
          {
              output.Append(file.Name + "\n");
          }
          this.textBlock.Text = output.ToString();
      }
      else
      {
          this.textBlock.Text = "Operation cancelled.";
      }
      

Wybierz folder: kompletna lista kodu

var folderPicker = new Windows.Storage.Pickers.FolderPicker();
folderPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
folderPicker.FileTypeFilter.Add("*");

Windows.Storage.StorageFolder folder = await folderPicker.PickSingleFolderAsync();
if (folder != null)
{
    // Application now has read/write access to all contents in the picked folder
    // (including other sub-folder contents)
    Windows.Storage.AccessCache.StorageApplicationPermissions.
    FutureAccessList.AddOrReplace("PickedFolderToken", folder);
    this.textBlock.Text = "Picked folder: " + folder.Name;
}
else
{
    this.textBlock.Text = "Operation cancelled.";
}

Wskazówka

Za każdym razem, gdy aplikacja uzyskuje dostęp do pliku lub folderu za pośrednictwem selektora, dodaj go do aplikacji FutureAccessList lub MostRecentlyUsedList, aby śledzić go. Więcej informacji na temat używania tych list można dowiedzieć się w Jak śledzić ostatnio używane pliki i foldery.

Zobacz także

Windows.Storage.Pickers

Pliki, foldery i biblioteki

Integracja z usługami selektora plików