다음을 통해 공유


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

중요 API

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

참고 항목

 전체 샘플에 대해서는 파일 선택기 샘플을 참조하세요.

참고 항목

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

필수 조건

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

파일, 폴더 및 라이브러리

파일 선택기 계약과 통합

파일 만들기, 쓰기 및 읽기