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
Uzyskaj dostęp do zawartości przechowywanej w folderze HomeGroup użytkownika, w tym zdjęcia, muzykę i filmy wideo.
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++.
deklaracje możliwości aplikacji
Aby uzyskać dostęp do zawartości Grupy głównej, komputer użytkownika musi mieć skonfigurowaną grupę domową, a aplikacja musi mieć co najmniej jedną z następujących funkcji: picturesLibrary, musicLibrarylub videosLibrary. Gdy aplikacja uzyskuje dostęp do folderu HomeGroup, zobaczy tylko biblioteki, które odpowiadają możliwościom zadeklarowanych w manifeście aplikacji. Aby dowiedzieć się więcej, zobacz Uprawnienia dostępu do plików.
Uwaga / Notatka
Zawartość w bibliotece Dokumenty Grupy domowej, niezależnie od możliwości zadeklarowanych w manifeście aplikacji oraz ustawień udostępniania użytkownika, nie jest widoczna dla twojej aplikacji.
Dowiedz się, jak używać selektorów plików
Zazwyczaj selektor plików służy do uzyskiwania dostępu do plików i folderów w grupie głównej. Aby dowiedzieć się, jak używać selektora plików, zobacz Otwórz pliki i foldery przy użyciu selektora.
Omówienie zapytań dotyczących plików i folderów
Zapytania umożliwiają wyliczanie plików i folderów w grupie głównej. Aby dowiedzieć się więcej o zapytaniach dotyczących plików i folderów, zobacz Wyliczanie i wykonywanie zapytań dotyczących plików i folderów.
Otwórz selektor plików w grupie głównej
Wykonaj następujące kroki, aby otworzyć wystąpienie selektora plików, które umożliwia użytkownikowi wybranie plików i folderów z grupy głównej:
Tworzenie i dostosowywanie selektora plików
Użyj FileOpenPicker do utworzenia selektora plików, a następnie ustaw lokalizację początkową selektora SuggestedStartLocation na PickerLocationId.HomeGroup. Możesz też ustawić inne właściwości, które są istotne dla użytkowników i aplikacji. Aby uzyskać wskazówki ułatwiające podjęcie decyzji o sposobie dostosowywania selektora plików, zobacz wskazówki i listę kontrolną selektorów plików
W tym przykładzie tworzony jest selektor plików, który zostanie otwarty w grupie głównej, zawiera pliki dowolnego typu i wyświetla pliki jako obrazy miniatur:
Windows.Storage.Pickers.FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker(); picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail; picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.HomeGroup; picker.FileTypeFilter.Clear(); picker.FileTypeFilter.Add("*");Pokaż selektor plików i przetwórz wybrany plik.
Po utworzeniu i dostosowaniu selektora plików pozwól użytkownikowi wybrać jeden plik, wywołując metodę FileOpenPicker.PickSingleFileAsynclub wiele plików, wywołując FileOpenPicker.PickMultipleFilesAsync.
W tym przykładzie zostanie wyświetlony selektor plików umożliwiający użytkownikowi wybranie jednego pliku:
Windows.Storage.StorageFile file = await picker.PickSingleFileAsync(); if (file != null) { // Do something with the file. } else { // No file returned. Handle the error. }
Wyszukaj pliki w Grupie domowej
W tej sekcji pokazano, jak znaleźć elementy grupy głównej zgodne z terminem zapytania dostarczonym przez użytkownika.
Pobierz termin zapytania od użytkownika.
W tym miejscu otrzymujemy termin zapytania wprowadzony przez użytkownika do kontrolki TextBox o nazwie
searchQueryTextBox:string queryTerm = this.searchQueryTextBox.Text;Ustaw opcje zapytania i filtr wyszukiwania.
Opcje zapytania określają sposób sortowania wyników wyszukiwania, podczas gdy filtr wyszukiwania określa, które elementy są zawarte w wynikach wyszukiwania.
W tym przykładzie ustawiamy opcje zapytania, które sortuje wyniki wyszukiwania według istotności, a następnie data modyfikacji. Filtr wyszukiwania to termin zapytania wprowadzony przez użytkownika w poprzednim kroku:
Windows.Storage.Search.QueryOptions queryOptions = new Windows.Storage.Search.QueryOptions (Windows.Storage.Search.CommonFileQuery.OrderBySearchRank, null); queryOptions.UserSearchFilter = queryTerm.Text; Windows.Storage.Search.StorageFileQueryResult queryResults = Windows.Storage.KnownFolders.HomeGroup.CreateFileQueryWithOptions(queryOptions);Uruchom zapytanie i przetwórz wyniki.
Poniższy przykład uruchamia zapytanie wyszukiwania w grupie głównej i zapisuje nazwy wszystkich pasujących plików jako listę ciągów.
System.Collections.Generic.IReadOnlyList<Windows.Storage.StorageFile> files = await queryResults.GetFilesAsync(); if (files.Count > 0) { outputString += (files.Count == 1) ? "One file found\n" : files.Count.ToString() + " files found\n"; foreach (Windows.Storage.StorageFile file in files) { outputString += file.Name + "\n"; } }
Przeszukaj grupę domową pod kątem udostępnionych plików określonego użytkownika
W tej sekcji pokazano, jak znaleźć pliki grupy głównej, które są współużytkowane przez określonego użytkownika.
Pobierz kolekcję użytkowników HomeGroup.
Każdy z folderów pierwszego poziomu w grupie głównej reprezentuje pojedynczego użytkownika grupy domowej. Aby uzyskać kolekcję użytkowników Grupy domowej, wywołaj GetFoldersAsync, aby pobrać foldery Grupy domowej najwyższego poziomu.
System.Collections.Generic.IReadOnlyList<Windows.Storage.StorageFolder> hgFolders = await Windows.Storage.KnownFolders.HomeGroup.GetFoldersAsync();Znajdź folder użytkownika docelowego, a następnie utwórz zapytanie o zakresie pliku w folderze tego użytkownika.
Poniższy przykład iteruje za pośrednictwem pobranych folderów, aby znaleźć folder użytkownika docelowego. Następnie ustawia opcje zapytania, aby znaleźć wszystkie pliki w folderze, posortowane najpierw według istotności, a następnie według daty modyfikacji. Przykład tworzy ciąg, który raportuje liczbę znalezionych plików wraz z nazwami plików.
bool userFound = false; foreach (Windows.Storage.StorageFolder folder in hgFolders) { if (folder.DisplayName == targetUserName) { // Found the target user's folder, now find all files in the folder. userFound = true; Windows.Storage.Search.QueryOptions queryOptions = new Windows.Storage.Search.QueryOptions (Windows.Storage.Search.CommonFileQuery.OrderBySearchRank, null); queryOptions.UserSearchFilter = "*"; Windows.Storage.Search.StorageFileQueryResult queryResults = folder.CreateFileQueryWithOptions(queryOptions); System.Collections.Generic.IReadOnlyList<Windows.Storage.StorageFile> files = await queryResults.GetFilesAsync(); if (files.Count > 0) { string outputString = "Searched for files belonging to " + targetUserName + "'\n"; outputString += (files.Count == 1) ? "One file found\n" : files.Count.ToString() + " files found\n"; foreach (Windows.Storage.StorageFile file in files) { outputString += file.Name + "\n"; } } } }
Strumieniuj wideo z grupy domowej
Wykonaj następujące kroki, aby przesłać strumieniowo zawartość wideo z grupy głównej:
uwzględnij element MediaElement w aplikacji.
MediaElement umożliwia odtwarzanie treści audio i wideo w aplikacji. Aby uzyskać więcej informacji na temat odtwarzania audio i wideo, zobacz Utwórz niestandardowe elementy sterujące transportem oraz Dźwięk, wideo i kamera.
<Grid x:Name="Output" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Row="1"> <MediaElement x:Name="VideoBox" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0" Width="400" Height="300"/> </Grid>Otwórz selektor plików w grupie głównej i zastosuj filtr zawierający pliki wideo w formatach, które obsługuje aplikacja.
Ten przykład obejmuje pliki .mp4 i .wmv w selektorze pliku otwartego.
Windows.Storage.Pickers.FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker(); picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail; picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.HomeGroup; picker.FileTypeFilter.Clear(); picker.FileTypeFilter.Add(".mp4"); picker.FileTypeFilter.Add(".wmv"); Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();Otwórz wybór pliku dokonany przez użytkownika, aby uzyskać dostęp do odczytu, ustaw strumień pliku jako źródło dlaMediaElement, a następnie odtwórz plik.
if (file != null) { var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); VideoBox.SetSource(stream, file.ContentType); VideoBox.Stop(); VideoBox.Play(); } else { // No file selected. Handle the error here. }