Udostępnij za pomocą


Zapisywanie pliku przy użyciu selektora

ważne interfejsy API

Użyj FileSavePicker, aby umożliwić użytkownikom określenie nazwy i lokalizacji, w której aplikacja ma zapisać plik.

Uwaga / Notatka

 Aby zapoznać się z kompletnym przykładem, zobacz przykład selektora plików .

Uwaga / Notatka

W aplikacji desktopowej (w tym aplikacjach WinUI) możesz użyć przestrzeni nazw Microsoft.Windows.Storage.Pickers, aby uzyskać dostęp do selektorów plików i folderów. Ta przestrzeń nazw jest dostępna w zestawie SDK aplikacji systemu Windows w wersji 1.8 lub nowszej. Interfejsy API w tej przestrzeni nazw są zaprojektowane tak, aby bezproblemowo współdziałały z aplikacjami WinUI, zapewniając spójne środowisko w różnych typach aplikacji.

W razie potrzeby nadal można używać selektorów plików i folderów z Windows.Storage.Pickers. Jeśli jednak aplikacja komputerowa wymaga zwiększenia uprawnień do uruchomienia, konieczne będzie inne podejście, ponieważ te interfejsy API nie są przystosowane do używania w aplikacji z podwyższonym poziomem uprawnień. Aby zapoznać się z przykładem, zobacz FileSavePicker.

Wymagania wstępne

FileSavePicker: krok po kroku

Użyj FileSavePicker, aby użytkownicy mogli określić nazwę, typ i lokalizację pliku do zapisania. Utwórz, dostosuj i pokaż obiekt selektora plików, a następnie zapisz dane za pośrednictwem zwróconego obiektu StorageFile reprezentującego wybrany plik.

  1. Tworzenie i dostosowywanie narzędzia 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";
    

    Ustaw właściwości obiektu selektora plików, które są istotne dla użytkowników i aplikacji. W tym przykładzie ustawiono trzy właściwości: SuggestedStartLocation, FileTypeChoices i SuggestedFileName.

    • Ponieważ nasz użytkownik zapisuje dokument lub plik tekstowy, przykładowe zestawienia SuggestedStartLocation są ustawiane na lokalny folder aplikacji przy użyciu folderu lokalnego. Ustaw SuggestedStartLocation na lokalizację odpowiednią dla typu zapisywanego pliku, na przykład Muzyka, Obrazy, Filmy lub Dokumenty. Z lokalizacji początkowej użytkownik może przejść do innych lokalizacji.

    • Ponieważ chcemy upewnić się, że nasza aplikacja może otworzyć plik po jego zapisaniu, używamy FileTypeChoices do określania typów plików, które obsługuje przykład (dokumenty programu Microsoft Word i pliki tekstowe). Upewnij się, że wszystkie określone typy plików są obsługiwane przez aplikację. Użytkownicy będą mogli zapisywać swój plik jako dowolny z określonych typów plików. Mogą również zmienić typ pliku, wybierając inny określony typ pliku. Wybór pierwszego typu pliku na liście zostanie domyślnie wybrany: aby to kontrolować, ustaw właściwość DefaultFileExtension.

    Uwaga / Notatka

     Selektor plików używa również aktualnie wybranego typu pliku do filtrowania wyświetlanych plików, dzięki czemu tylko typy plików pasujące do wybranych typów plików są wyświetlane użytkownikowi.

    • Aby zaoszczędzić użytkownikowi trochę pisania, przykład ustawia SuggestedFileName. Nadaj proponowanej nazwie pliku odpowiedniość do zapisywanego pliku. Na przykład, podobnie jak program Word, możesz zasugerować istniejącą nazwę pliku, jeśli istnieje, lub pierwszy wiersz dokumentu, jeśli użytkownik zapisuje plik, który nie ma jeszcze nazwy.

    Uwaga / Notatka

      obiekty FileSavePicker wyświetlają selektor plików w trybie widoku PickerViewMode.List.

  2. Pokaż selektor zapisu pliku i zapisz do wybranego pliku

    Wyświetl selektor plików, wywołując PickSaveFileAsync. Gdy użytkownik określi nazwę, typ pliku i lokalizację oraz potwierdzi zapisanie pliku, PickSaveFileAsync zwraca obiekt StorageFile reprezentujący zapisany plik. Możesz przechwycić i przetworzyć ten plik teraz, gdy masz do niego dostęp do odczytu i zapisu.

    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.";
    }
    

Przykład sprawdza, czy plik jest prawidłowy i zapisuje w nim własną nazwę pliku. Zobacz również Tworzenie, zapisywanie i odczytywanie pliku.

Wskazówka

 Zawsze należy sprawdzić zapisany plik, aby upewnić się, że jest on prawidłowy przed wykonaniem jakiegokolwiek innego przetwarzania. Następnie możesz zapisać zawartość w pliku zgodnie z potrzebami aplikacji i zapewnić odpowiednie zachowanie, jeśli wybrany plik jest nieprawidłowy.

Zobacz także

Windows.Storage.Pickers

Pliki, foldery i biblioteki

Integracja z usługami selektora plików

Tworzenie, zapisywanie i odczytywanie pliku