Sdílet prostřednictvím


Uložení souboru pomocí nástroje pro výběr

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:

 Pro kompletní ukázku se podívejte na ukázku výběru souboru .

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

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.

  1. 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í.

  2. 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ý.

Viz také

Windows.Storage.Pickers

Soubory, složky a knihovny

Integrace se smlouvami pro výběr souborů

Vytvoření, zápis a čtení souboru