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 souborům a složkám tím, že umožníte uživateli interakci s nástrojem pro výběr. K přístupu k souborům můžete použít třídy FileOpenPicker a FileSavePicker a FolderPicker pro přístup ke složce.
Poznámka:
V desktopové aplikaci (která zahrnuje aplikace WinUI) můžete pro přístup k souborům a výběrům složek použít obor názvů Microsoft.Windows.Storage.Pickers . Tento obor názvů je k dispozici ve Windows App SDK verze 1.8 a novější. Rozhraní API v tomto oboru názvů jsou navržena tak, aby bezproblémově fungovala s aplikacemi WinUI a poskytovala konzistentní uživatelský zážitek napříč různými typy aplikací.
V případě potřeby ale můžete dál používat nástroje pro výběr souborů a složek WinRT z windows.Storage.Pickers. Pokud desktopová aplikace vyžaduje ke spuštění zvýšení oprávnění, budete potřebovat jiný přístup, protože tato rozhraní API nejsou navržená tak, aby se používala v aplikaci se zvýšenými oprávněními. Příklad najdete v tématu FileSavePicker.
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++.
Přístupová oprávnění k umístění
Uživatelské rozhraní pro výběr souborů
Výběr souboru zobrazí informace pro orientaci uživatelů a zajištění konzistentního prostředí při otevírání nebo ukládání souborů.
Mezi tyto informace patří:
- Aktuální umístění
- Položka nebo položky, které uživatel vybral
- Strom umístění, na která může uživatel přejít. Tato umístění zahrnují umístění systému souborů, jako je například složka Hudba nebo Stažené soubory, a také aplikace, které implementují kontrakt pro výběr souborů (například Fotoaparát, Fotky a Microsoft OneDrive).
Aplikace pro e-mail může zobrazit nástroj pro výběr souborů, aby uživatel mohl vybrat přílohy.
Jak fungují vybírače
Vaše aplikace může prostřednictvím nástroje pro výběr přistupovat k souborům a složkám, procházet je a ukládat v systému uživatele. Aplikace obdrží tyto výběry jako objekty StorageFile a StorageFolder, se kterými pak můžete pracovat.
Nástroj pro výběr používá jedno sjednocené rozhraní, které umožňuje uživateli vybrat soubory a složky ze systému souborů nebo z jiných aplikací. Soubory vybrané z jiných aplikací se podobají souborům ze systému souborů: vrátí se jako objekty StorageFile . Obecně platí, že vaše aplikace s nimi může pracovat stejným způsobem jako jiné objekty. Ostatní aplikace zpřístupňují soubory účastí na kontraktu pro výběr souborů. Pokud chcete, aby vaše aplikace poskytovala soubory, místo pro ukládání nebo aktualizace souborů do jiných aplikací, přečtěte si téma Integrace s kontrakty výběru souborů.
Můžete například vyvolat výběr souboru ve vaší aplikaci, aby uživatel mohl otevřít soubor. Díky tomu bude vaše aplikace volající aplikací. Výběr souboru komunikuje se systémem a/nebo jinými aplikacemi, aby uživatel mohl najít a vybrat soubor. Když uživatel vybere soubor, nástroj pro výběr souboru tento soubor vrátí do vaší aplikace. Tady je postup pro případ, že uživatel zvolí soubor z aplikace poskytující, například OneDrive.
Výběr jednoho souboru: kompletní výpis kódu
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.";
}
Vyberte jeden soubor: krok za krokem
Použití výběru souboru zahrnuje vytvoření a přizpůsobení objektu pro výběr souboru a zobrazení výběru souboru, aby uživatel mohl vybrat jednu nebo více položek.
Vytvoření a přizpůsobení FileOpenPickeru
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");Nastavte vlastnosti objektu pro výběr souboru, který je relevantní pro uživatele a aplikaci.
Tento příklad vytvoří bohaté vizuální zobrazení obrázků v pohodlném umístění, ze kterého si uživatel může vybrat nastavením tří vlastností: ViewMode, SuggestedStartLocation a FileTypeFilter.
Nastavení ViewMode na PickerViewModehodnotu výčtu vytvoří bohaté vizuální zobrazení pomocí miniatur obrázků, které představují soubory ve výběru souborů. Uděláte to při výběru vizuálních souborů, jako jsou obrázky nebo videa. V opačném případě použijte PickerViewMode.List. Hypotetická e-mailová aplikace s funkcí připojit obrázek nebo video a připojit dokument by před zobrazením výběru souboru nastavovala ViewMode odpovídající funkci.
Nastavení SuggestedStartLocation na obrázky pomocí PickerLocationId.PicturesLibrary způsobí, že uživatel začne v místě, kde najde pravděpodobně obrázky. Nastavte SuggestedStartLocation na umístění vhodné pro typ vybraného souboru, například Hudba, Obrázky, Videa nebo Dokumenty. Z počátečního umístění může uživatel přejít na jiná umístění.
Použití FileTypeFilter k určení typů souborů udržuje uživatele zaměřené na výběr souborů, které jsou relevantní. Chcete-li nahradit předchozí typy souborů v FileTypeFilter novými položkami, použijte ReplaceAll místo Add.
Zobrazit nástroj pro výběr souborů
Výběr jednoho souboru
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."; }Výběr více souborů
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."; }
Výběr složky: kompletní výpis kódu
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.";
}
Návod
Pokaždé, když aplikace přistupuje k souboru nebo složce pomocí nástroje pro výběr, přidejte ho do seznamu FutureAccessList nebo MostRecentlyUsedList vaší aplikace, abyste ho mohli sledovat. Další informace o používání těchto seznamů najdete v tématu Postup sledování naposledy použitých souborů a složek.