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
Pomocí FileSavePickeru můžete uživatelům umožnit, aby zadali název a umístění, kam má vaše aplikace uložit soubor.
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 můžete stále používat nástroje pro výběr souborů a složek z windows.Storage.Pickers. Pokud ale desktopová aplikace vyžaduje zvýšení oprávnění ke spuště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í
FileSavePicker: krok za krokem
Použijte FileSavePicker , aby uživatelé mohli zadat název, typ a umístění souboru, který chcete uložit. Vytvořte, přizpůsobte a zobrazte objekt pro výběr souboru a potom uložte data prostřednictvím vráceného objektu StorageFile , který představuje vybraný soubor.
Vytvoření a přizpůsobení FileSavePicker
var savePicker = new Windows.Storage.Pickers.FileSavePicker(); savePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary; // Dropdown of file types the user can save the file as savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" }); // Default file name if the user does not type one in or select a file to replace savePicker.SuggestedFileName = "New Document";Nastavte vlastnosti objektu pro výběr souboru, který je relevantní pro vaše uživatele a vaši aplikaci. Tento příklad nastaví tři vlastnosti: SuggestedStartLocation, FileTypeChoices a SuggestedFileName.
Vzhledem k tomu, že uživatel ukládá dokument nebo textový soubor, ukázková sada nastaví SuggestedStartLocation na místní složku aplikace pomocí LocalFolder. Nastavte SuggestedStartLocation na umístění vhodné pro typ uložené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í.
Protože chceme zajistit, aby naše aplikace po uložení soubor otevřela, použijeme FileTypeChoices k určení typů souborů, které ukázka podporuje (dokumenty Microsoft Wordu a textové soubory). Ujistěte se, že vaše aplikace podporuje všechny typy souborů, které zadáte. Uživatelé budou moct soubor uložit jako kterýkoli ze zadaných typů souborů. Můžou také změnit typ souboru výběrem jiného ze zadaných typů souborů. Ve výchozím nastavení bude vybrána první volba typu souboru v seznamu: k tomu nastavte vlastnost DefaultFileExtension.
Poznámka:
Výběr souboru také používá aktuálně vybraný typ souboru k filtrování zobrazených souborů, aby se uživateli zobrazily pouze typy souborů, které odpovídají vybraným typům souborů.
- Pro zjednodušení psaní uživatele příklad nastaví SuggestedFileName. Nastavte navrhovaný název souboru tak, aby byl relevantní pro soubor, který se ukládá. Například word můžete navrhnout název existujícího souboru, pokud existuje, nebo první řádek dokumentu, pokud uživatel ukládá soubor, který ještě nemá název.
Poznámka:
FileSavePicker objekty zobrazují dialog pro výběr souboru v PickerViewMode.List režimu zobrazení.
Zobrazení FileSavePickeru a uložení do vybraného souboru
Zobrazte výběr souborů voláním PickSaveFileAsync. Jakmile uživatel zadá název, typ souboru a umístění a potvrdí uložení souboru, vrátí PickSaveFileAsync objekt StorageFile , který představuje uložený soubor. Tento soubor teď můžete zachytit a zpracovat, když k němu máte přístup pro čtení a zápis.
Windows.Storage.StorageFile file = await savePicker.PickSaveFileAsync(); if (file != null) { // Prevent updates to the remote version of the file until // we finish making changes and call CompleteUpdatesAsync. Windows.Storage.CachedFileManager.DeferUpdates(file); // write to file await Windows.Storage.FileIO.WriteTextAsync(file, "file contents"); // Let Windows know that we're finished changing the file so // the other app can update the remote version of the file. // Completing updates may require Windows to ask for user input. Windows.Storage.Provider.FileUpdateStatus status = await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file); if (status == Windows.Storage.Provider.FileUpdateStatus.Complete) { this.textBlock.Text = "File " + file.Name + " was saved."; } else { this.textBlock.Text = "File " + file.Name + " couldn't be saved."; } } else { this.textBlock.Text = "Operation cancelled."; }
Příklad zkontroluje platnost souboru a zapíše do něj vlastní název souboru. Viz také vytváření, zápis a čtení souboru.
Návod
Před provedením jakéhokoli jiného zpracování byste měli vždy zkontrolovat uložený soubor, abyste měli jistotu, že je platný. Poté můžete obsah uložit do souboru dle potřeb vaší aplikace a zajistit odpovídající reakci, pokud vybraný soubor není platný.