다음을 통해 공유


선택기를 사용하여 파일 저장

주요 API들

FileSavePicker 사용하여 사용자가 앱에서 파일을 저장할 이름과 위치를 지정할 수 있습니다.

비고

 전체 샘플은 파일 선택기 샘플참조하세요.

비고

데스크톱 앱(WinUI 앱 포함)에서 Microsoft.Windows.Storage.Pickers 네임스페이스를 사용하여 파일 및 폴더 선택자에 액세스할 수 있습니다. 이 네임스페이스는 Windows 앱 SDK 버전 1.8 이상에서 사용할 수 있습니다. 이 네임스페이스의 API는 WinUI 앱과 원활하게 작동하도록 설계되어 다양한 앱 유형에서 일관된 환경을 제공합니다.

필요한 경우 Windows.Storage.Pickers의 파일 및 폴더 선택기를 계속 사용할 수 있습니다. 그러나 데스크톱 앱을 실행하기 위해 상승이 필요한 경우 이러한 API는 관리자 권한 앱에서 사용하도록 설계되지 않았기 때문에 다른 접근 방식이 필요합니다. 예제는 FileSavePicker를 참조하세요.

필수 조건

  • UWP(유니버설 Windows 플랫폼) 앱에 대한 비동기 프로그래밍을 이해하기

    C# 또는 Visual Basic에서 비동기 앱을 작성하는 방법을 알아볼 수 있습니다. C# 또는 Visual Basic비동기 API 호출을 참조하세요. C++에서 비동기 앱을 작성하는 방법을 알아보려면 C++비동기 프로그래밍을 참조하세요.

  • 위치에 대한 액세스 권한

    파일 액세스 권한을 참조하십시오.

FileSavePicker: 단계별 가이드

사용자가 저장할 파일의 이름, 형식 및 위치를 지정할 수 있도록 FileSavePicker 사용합니다. 파일 선택기 개체를 만들고, 사용자 지정하고, 표시한 다음, 선택한 파일을 나타내는 반환된 StorageFile 개체를 통해 데이터를 저장합니다.

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

    사용자 및 앱과 관련된 파일 선택기 개체의 속성을 설정합니다. 다음은 세 가지 속성을 설정하는 예제입니다: SuggestedStartLocation, FileTypeChoicesSuggestedFileName.

    • 사용자가 문서 또는 텍스트 파일을 저장하고 있으므로 샘플은 LocalFolder사용하여 SuggestedStartLocation 앱의 로컬 폴더로 설정합니다. SuggestedStartLocation 저장되는 파일 유형(예: 음악, 사진, 비디오 또는 문서)에 적합한 위치로 설정합니다. 시작 위치에서 사용자는 다른 위치로 이동할 수 있습니다.

    • 앱을 저장한 후 파일을 열 수 있도록 하려면 FileTypeChoices 사용하여 샘플에서 지원하는 파일 형식(Microsoft Word 문서 및 텍스트 파일)을 지정합니다. 지정한 모든 파일 형식이 앱에서 지원되는지 확인합니다. 사용자가 지정한 파일 형식으로 파일을 저장할 수 있습니다. 지정한 다른 파일 형식을 선택하여 파일 형식을 변경할 수도 있습니다. 목록에서 첫 번째 파일 형식 선택은 기본적으로 선택됩니다. 이를 제어하려면 DefaultFileExtension 속성을 설정합니다.

    비고

     또한 파일 선택기는 현재 선택한 파일 형식을 사용하여 표시되는 파일을 필터링하므로 선택한 파일 형식과 일치하는 파일 형식만 사용자에게 표시됩니다.

    • 사용자의 타이핑을 줄이기 위해 예제에서는 SuggestedFileName를 제안합니다. 제안된 파일 이름을 저장 중인 파일과 관련이 있도록 합니다. 예를 들어 Word와 같이 기존 파일 이름이 있는 경우 기존 파일 이름을 제안하거나 사용자가 아직 이름이 없는 파일을 저장하는 경우 문서의 첫 줄을 제안할 수 있습니다.

    비고

      FileSavePicker 개체는 PickerViewMode.List 보기 모드를 사용하여 파일 선택기를 표시합니다.

  2. FileSavePicker를 표시하고 선택한 파일에 저장하세요

    PickSaveFileAsync호출하여 파일 선택기를 표시합니다. 사용자가 이름, 파일 형식 및 위치를 지정하고 파일을 저장하도록 확인한 후 PickSaveFileAsync 저장된 파일을 나타내는 StorageFile 개체를 반환합니다. 이제 이 파일에 대한 읽기 및 쓰기 액세스 권한이 있으므로 이 파일을 캡처하고 처리할 수 있습니다.

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

이 예제에서는 파일이 유효한지 확인하고 해당 파일에 고유한 파일 이름을 씁니다. 또한 파일 만들기, 쓰기 및 읽기를 참조하세요.

팁 (조언)

 다른 처리를 수행하기 전에 저장된 파일이 유효한지 항상 확인해야 합니다. 그런 다음 앱에 맞게 파일에 콘텐츠를 저장하고 선택한 파일이 유효하지 않은 경우 적절한 동작을 제공할 수 있습니다.

참고하십시오

Windows.Storage.Pickers

파일, 폴더 및 라이브러리

파일 선택기 계약과 통합

파일 만들기, 쓰기 및 읽기