Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
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
Omówienie programowania asynchronicznego dla aplikacji platformy uniwersalnej systemu Windows (UWP)
Aby dowiedzieć się, jak pisać aplikacje asynchroniczne w języku C# lub Visual Basic, zobacz Wywoływanie asynchronicznych interfejsów API w języku C# lub Visual Basic. Aby dowiedzieć się, jak pisać aplikacje asynchroniczne w języku C++, zobacz Programowanie asynchroniczne w języku C++.
uprawnienia dostępu do lokalizacji
Zobacz Uprawnienia dostępu do plików.
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.
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.
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.
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 iAttach Document features (Dołączanie dokumentów) ustawiViewMode 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 zamiastReplaceAll .Dodaj
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.