선택기를 사용하여 파일 저장
중요 API
FileSavePicker를 사용하면 사용자가 앱에서 파일을 저장할 이름과 위치를 지정할 수 있습니다.
참고 항목
전체 샘플에 대해서는 파일 선택기 샘플을 참조하세요.
참고 항목
데스크톱 앱(WinUI 3 앱 포함)에서는 Windows.Storage.Pickers의 파일 및 폴더 선택기를 사용할 수 있습니다. 그러나 데스크톱 앱을 실행하기 위해 권한 상승이 필요한 경우 이러한 API는 관리자 권한 앱에서 사용하도록 설계되지 않았기 때문에 다른 접근 방식이 필요합니다. 예제는 FileSavePicker을 참조하세요.
필수 조건
UWP(유니버설 Windows 플랫폼) 앱에 대한 비동기 프로그래밍 이해
C# 또는 Visual Basic에서 비동기 앱을 작성하는 방법에 대한 자세한 내용은 C# 또는 Visual Basic에서 비동기식 API 호출을 참조하세요. C++에서 비동기 앱을 작성하는 방법은 C++의 비동기 프로그래밍을 참조하세요.
위치에 대한 액세스 권한
파일 액세스 권한을 참조하세요.
FileSavePicker: 단계별
사용자가 저장할 파일의 이름, 형식 및 위치를 지정할 수 있도록 FileSavePicker를 사용합니다. 파일 선택기 개체를 만들고, 사용자 지정하고, 표시한 다음 선택한 파일을 나타내는 반환된 StorageFile 개체를 통해 데이터를 저장합니다.
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, FileTypeChoices 및 SuggestedFileName의 세 가지 속성을 설정합니다.
사용자가 문서나 텍스트 파일을 저장하고 있기 때문에 샘플에서는 LocalFolder를 사용하여 SuggestedStartLocation을 앱의 로컬 폴더로 설정합니다. SuggestedStartLocation을 선택하려는 파일 형식(예: 음악, 사진, 동영상 또는 문서)에 적절한 위치로 저장합니다. 사용자는 시작 위치에서 다른 위치로 이동할 수 있습니다.
파일이 저장된 후 앱에서 파일을 열 수 있는지 확인하기 위해 FileTypeChoices를 사용하여 샘플이 지원하는 파일 형식(Microsoft Word 문서 및 텍스트 파일)을 지정합니다. 지정한 모든 파일 형식이 앱에서 지원되는지 확인합니다. 사용자는 자신이 지정한 파일 형식으로 파일을 저장할 수 있습니다. 또한 사용자가 지정한 다른 파일 형식을 선택하여 파일 형식을 변경할 수도 있습니다. 목록에서 첫 번째 파일 형식 항목은 기본적으로 선택됩니다. 이를 제어하려면 DefaultFileExtension 속성을 설정합니다.
참고 항목
파일 선택기는 현재 선택된 파일 형식을 사용하여 표시되는 파일을 필터링하기도 하므로 선택한 파일 형식과 일치하는 파일 형식만 사용자에게 표시됩니다.
- 사용자가 입력하는 시간을 절약하기 위해 이 예에서는 SuggestedFileName을 설정합니다. 제안된 파일 이름을 저장 중인 파일과 관련되도록 지정합니다. 예를 들어, Word와 마찬가지로 기존 파일 이름이 있는 경우 이를 제안하거나, 사용자가 아직 이름이 없는 파일을 저장하면 문서의 첫 번째 줄을 제안할 수 있습니다.
참고 항목
FileSavePicker 개체는 PickerViewMode.List 보기 모드를 사용하여 파일 선택기를 표시합니다.
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."; }
이 예에서는 파일이 유효한지 확인하고 고유한 파일 이름을 파일에 씁니다. 파일 만들기, 쓰기 및 읽기도 참조하세요.
팁
다른 처리를 수행하기 전에 항상 저장된 파일을 검사하여 유효한지 확인해야 합니다. 그런 다음 앱에 맞게 콘텐츠를 파일에 저장하고 선택한 파일이 잘못된 경우 적절한 동작을 제공할 수 있습니다.