Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
důležitá rozhraní API
Přístup k obsahu uloženému ve složce Domácí skupina uživatele, včetně obrázků, hudby a videí
Požadavky
principy asynchronního programování pro aplikace univerzální platformy Windows (UPW)
Dozvíte se, jak psát asynchronní aplikace v jazyce C# nebo Visual Basic, viz Volání asynchronních rozhraní API v jazyce C# nebo Visual Basic. Informace o tom, jak psát asynchronní aplikace v jazyce C++, najdete v tématu asynchronní programování v jazyce C++.
deklarace funkcí aplikace
Pokud chcete získat přístup k obsahu domácí skupiny, musí mít počítač uživatele nastavenou domácí skupinu a vaše aplikace musí mít aspoň jednu z následujících funkcí: picturesLibrary, musicLibrary nebo videosLibrary. Když vaše aplikace přistupuje ke složce Domácí skupina, zobrazí se jenom knihovny, které odpovídají možnostem deklarovaným v manifestu vaší aplikace. Další informace najdete v tématu Oprávnění k přístupu k souborům.
Poznámka:
Obsah v knihovně Dokumentů domácí skupiny není pro vaši aplikaci viditelný bez ohledu na možnosti deklarované v manifestu vaší aplikace a bez ohledu na nastavení sdílení uživatele.
Vysvětlení použití výběrů souborů
K přístupu k souborům a složkám v domácí skupině obvykle používáte nástroj pro výběr souborů. Informace o používání nástroje pro výběr souborů najdete v tématu Otevření souborů a složek pomocí nástroje pro výběr.
Pochopit dotazy na soubory a složky
Dotazy můžete použít k vytvoření výčtu souborů a složek v domácí skupině. Další informace o dotazech na soubory a složky viz Enumerating and querying files and folders.
Otevření nástroje pro výběr souboru v domácí skupině
Pomocí následujícího postupu otevřete instanci nástroje pro výběr souborů, která uživateli umožní vybrat soubory a složky z domovské skupiny:
Vytvoření a přizpůsobení nástroje pro výběr souborů
Pomocí FileOpenPicker vytvořte výběr souborů a pak nastavte SuggestedStartLocation na PickerLocationId.HomeGroup. Nebo nastavte další vlastnosti, které jsou relevantní pro vaše uživatele a vaši aplikaci. Pokyny, které vám pomůžou rozhodnout, jak přizpůsobit výběr souborů, najdete v tématu Pokyny a kontrolní seznam pro výběr souborů.
Tento příklad vytvoří nástroj pro výběr souborů, který se otevře v domácí skupině, obsahuje soubory libovolného typu a zobrazí soubory jako miniatury:
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("*");Zobrazí výběr souboru a zpracuje vybraný soubor.
Po vytvoření a přizpůsobení výběru souboru nechte uživatele vybrat jeden soubor voláním FileOpenPicker.PickSingleFileAsync nebo více souborů voláním FileOpenPicker.PickMultipleFilesAsync.
V tomto příkladu se zobrazí nástroj pro výběr souboru, který uživateli umožní vybrat jeden soubor:
Windows.Storage.StorageFile file = await picker.PickSingleFileAsync(); if (file != null) { // Do something with the file. } else { // No file returned. Handle the error. }
Hledání souborů v domácí skupině
Tato část ukazuje, jak najít položky domácí skupiny, které odpovídají termínu dotazu poskytnutému uživatelem.
Získejte termín dotazu od uživatele.
Zde získáme dotazovací termín, který uživatel zadal do ovládacího prvku TextBox s názvem
searchQueryTextBox:string queryTerm = this.searchQueryTextBox.Text;Nastavte možnosti dotazu a filtr hledání.
Možnosti dotazu určují způsob řazení výsledků hledání, zatímco filtr hledání určuje, které položky se do výsledků hledání zahrnou.
Tento příklad nastaví možnosti dotazu, které seřadí výsledky hledání podle relevance a potom datum změny. Vyhledávací filtr je termín dotazu, který uživatel zadal v předchozím 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);Spusťte dotaz a zpracujte výsledky.
Následující příklad spustí vyhledávací dotaz v domácí skupině a uloží názvy všech odpovídajících souborů jako seznam řetězců.
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"; } }
Vyhledání sdílených souborů konkrétního uživatele v domácí skupině
V této části se dozvíte, jak najít soubory domácí skupiny, které sdílí konkrétní uživatel.
Získejte kolekci uživatelů HomeGroup.
Každá z první úrovně složek v domácí skupině představuje jednotlivého uživatele domácí skupiny. Abyste tedy získali kolekci uživatelů Domácí Skupiny, zavolejte GetFoldersAsync a načtěte složky Domácí Skupiny nejvyšší úrovně.
System.Collections.Generic.IReadOnlyList<Windows.Storage.StorageFolder> hgFolders = await Windows.Storage.KnownFolders.HomeGroup.GetFoldersAsync();Vyhledejte složku cílového uživatele a pak vytvořte dotaz na soubor s vymezeným oborem složky tohoto uživatele.
Následující příklad prochází načtené složky a vyhledá složku cílového uživatele. Potom nastaví možnosti dotazu pro vyhledání všech souborů ve složce, seřazené jako první podle relevance a potom podle data změny. Příklad vytvoří řetězec, který hlásí počet nalezených souborů spolu s názvy souborů.
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"; } } } }
Přehrávání videa z domácí skupiny
Pokud chcete streamovat obsah videa z domovské skupiny, postupujte takto:
Zařaďte do své aplikace MediaElement.
MediaElement umožňuje přehrávat obsah zvuku a videa v aplikaci. Další informace o přehrávání zvuku a videa najdete v tématu Vytvoření vlastních ovládacích prvků přenosu a zvuku, videa a kamery.
<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>Otevřete nástroj pro výběr souborů v domácí skupině a použijte filtr obsahující videosoubory ve formátech, které vaše aplikace podporuje.
Tento příklad zahrnuje soubory .mp4 a .wmv v nástroji pro výběr otevřených souborů.
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();Otevřete výběr souborů uživatele pro přístup pro čtení a nastavte datový proud jako zdroj proMediaElementa pak přehrajte soubor.
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. }