언어: HTML | XAML

빠른 시작: 파일 선택기를 사용하여 파일에 액세스(XAML)

파일 선택기를 통해 사용자가 파일 및 폴더를 선택할 수 있도록 하여 파일 및 폴더에 액세스합니다. FileOpenPicker 클래스를 사용하여 파일에 액세스하고 FolderPicker 클래스를 사용하여 폴더에 액세스할 수 있습니다.

사전 요구 사항

C++, C#, 또는 Visual Basic으로 작성한 Windows 런타임 앱의 비동기 프로그래밍 이해

비동기 앱을 작성하는 방법에 대한 자세한 내용은 빠른 시작: C# 또는Visual Basic에서 비동기식 API 호출을 참조하세요.

파일 선택기 UI

파일 선택기에서 화면의 위쪽과 아래쪽에는 사용자의 위치를 알려 주는 정보를 표시하고 사용자가 파일을 액세스하거나 저장할 때 일관된 환경을 제공하는 영역이 있습니다.

표시되는 정보는 다음과 같습니다.

  • 현재 위치(왼쪽 위에 있음)
  • 사용자가 선택한 항목 바구니(아래에 있음)
  • 사용자가 찾아볼 수 있는 위치의 드롭다운 목록(왼쪽 위의 아래쪽 캐럿에서 선택할 수 있음)

예를 들어 다음 스크린샷에서는 메일 앱에서 사용자가 사진을 선택할 수 있도록 호출한 파일 선택기를 보여 줍니다(스크린샷에서는 아직 사진을 선택하지 않음).

두 개의 파일을 열기 위해 선택한 파일 선택기의 화면 캡처입니다.

사용자는 파일 선택기 왼쪽 위에 있는 아래쪽 캐럿을 선택하여 오른쪽의 스크린샷에 나온 목록과 같이 사용 가능한 위치의 드롭다운 목록을 볼 수 있습니다. 이러한 위치에는 음악 또는 다운로드 폴더와 같은 파일 시스템 위치가 포함됩니다. 또한 다른 앱(예제: Microsoft OneDrive)이 파일 선택기 계약에 참여한 경우 스크린샷 목록 아래쪽에 표시되는 이러한 다른 앱도 포함됩니다.

왼쪽 위에 드롭다운 위치 목록을 표시하는 파일 선택기의 잘려진 화면 캡처입니다.

 

파일 선택기 작동 방식

파일 선택기를 통해 앱은 사용자 시스템 전체의 파일 및 폴더에 액세스할 수 있습니다. 파일 선택기를 호출하면 사용자가 시스템을 탐색하고 액세스하여 저장할 파일(또는 폴더)을 선택할 수 있습니다. 사용자가 파일이나 폴더를 선택하면 앱은 해당 선택 항목을 StorageFileStorageFolder 개체로 받습니다. 그러면 앱은 해당 개체를 사용하여 선택한 파일 및 폴더에서 작동할 수 있습니다. 파일 액세스에 대한 자세한 내용은 파일 액세스 및 사용 권한을 참조하세요.

파일 선택기는 통합된 단일 인터페이스를 사용하여 사용자가 파일 시스템이나 다른 앱에서 파일 및 폴더를 선택할 수 있도록 합니다. 다른 앱에서 선택한 파일은 파일 시스템의 파일과 유사하며 StorageFile 개체로 반환됩니다. 일반적으로 앱은 다른 개체와 동일한 방식으로 해당 개체에서 작동할 수 있습니다. 다른 앱에서는 파일 선택기 계약에 참여함으로써 파일을 사용할 수 있게 합니다. 앱이 파일 선택기를 통해 파일을 제공하도록 하려는 경우 자세한 내용은 파일 선택기 계약과 통합을 참조하세요.

예를 들어 사용자가 파일을 열 수 있도록 앱에서 파일 선택기를 호출할 수 있습니다. 그러면 해당 앱이 호출 앱이 됩니다. 파일 선택기는 시스템 및 다른 앱과 상호 작용하여 사용자가 파일을 탐색하고 선택할 수 있도록 합니다. 사용자가 파일을 선택하면 파일 선택기는 해당 파일을 앱에 반환합니다. 아래 다이어그램에서는 사용자가 OneDrive와 같은 다른 앱에서 파일을 선택할 경우의 이 프로세스를 보여 줍니다. 이 경우 OneDrive는 제공 앱입니다.

한 앱이 파일 선택기를 두 앱 간의 인터페이스로 사용하여 다른 앱에서 열 파일을 가져오는 프로세스를 보여 주는 다이어그램입니다.

한 파일을 선택하는 전체 코드

파일 선택기 샘플에서는 FileOpenPicker를 사용하여 사용자가 단일 파일을 선택하도록 하는 방법에 대해 설명합니다.


FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");

StorageFile file = await openPicker.PickSingleFileAsync();
if (file != null)
{
    // Application now has read/write access to the picked file
    OutputTextBlock.Text = "Picked photo: " + file.Name;
}
else
{
    OutputTextBlock.Text = "Operation cancelled.";
}


여러 파일을 선택하는 전체 코드는 파일 선택기 샘플을 참조하세요.

한 파일 선택 연습

파일 선택기를 호출하려면 파일 선택기 개체 만들기 및 사용자 지정, 사용자가 항목을 선택할 수 있도록 파일 선택기 표시의 두 가지 기본 작업을 수행해야 합니다.

  1. FileOpenPicker 만들기 및 사용자 지정

    사용자가 파일을 선택할 경우 FileOpenPicker를 사용합니다. 만든 개체에서 속성을 설정하여 이 클래스를 사용자 지정할 수 있습니다.

    파일 선택기 샘플에서는 FileOpenPicker 개체를 만들고 사용자 지정하는 방법에 대해 설명합니다.

    
    FileOpenPicker openPicker = new FileOpenPicker();
    openPicker.ViewMode = PickerViewMode.Thumbnail;
    openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
    openPicker.FileTypeFilter.Add(".jpg");
    openPicker.FileTypeFilter.Add(".jpeg");
    openPicker.FileTypeFilter.Add(".png");
    
    
    

    사용자 및 앱과 관련된 파일 선택기 개체에서 속성을 설정해야 합니다. 파일 선택기 사용자 지정 방법을 결정하는 데 도움이 되는 지침은 파일 선택기에 대한 지침 및 검사 목록을 참조하세요. 파일 선택기 샘플에서 파일 선택기를 사용자 지정하기 위해 특정 속성을 설정하는 이유에 대한 설명을 보려면 계속 읽어 보세요.

    파일 선택기 샘플 FileOpenPicker 사용자 지정(설명)

    파일 선택기 샘플에서는 세 가지 FileOpenPicker 속성(ViewMode, SuggestedStartLocationFileTypeFilter 속성)을 설정하여 사용자가 선택할 수 있는 편리한 위치에 사진의 풍부한 시각적 표시를 만듭니다.

    • openPicker.ViewModeThumbnail PickerViewMode 열거 값으로 설정하면 사진 미리 보기를 사용하여 파일 선택기에 파일을 표시함으로써 풍부한 시각적 표시가 만들어집니다.

      
      openPicker.ViewMode = PickerViewMode.Thumbnail;
      
      

      파일 선택기를 사용하여 사진이나 비디오 같은 시각적 파일을 표시하려면 ViewModePickerViewMode.Thumbnail로 설정해야 합니다. 그렇지 않으면 PickerViewMode.List를 사용합니다.

      경우에 따라 사용자는 사진이나 비디오 또는 다른 종류의 파일을 선택할 수 있습니다. 예를 들어 사용자는 메일에 첨부하거나 IM을 통해 보낼 파일을 선택할 수 있습니다. 이 경우 두 개의 UI 컨트롤을 앱에 추가하여 두 보기 모드를 모두 지원해야 합니다. 컨트롤 하나는 사용자가 사진 및 비디오를 선택할 수 있도록 Thumbnail 보기 모드를 사용하여 파일 선택기를 호출해야 합니다. 다른 컨트롤은 사용자가 다른 종류의 파일을 선택할 수 있도록 List 보기 모드를 사용하여 파일 선택기를 호출해야 합니다. 예를 들어 메일 앱에는 사진 또는 비디오 첨부문서 첨부라는 두 개의 단추가 있을 수 있습니다.

    • PickerLocationId.PicturesLibrary를 사용하여 openPicker.SuggestedStartLocation을 사진으로 설정하면 사용자가 사진을 찾을 수 있을 것 같은 위치에서 시작할 수 있습니다.

      
      openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
      
      

      SuggestedStartLocation은 선택할 파일의 형식에 적합한 파일 시스템 위치로 설정해야 합니다. 사용자가 음악, 사진 또는 비디오를 선택할 경우 시작 위치를 각각 음악, 사진 또는 비디오로 설정합니다. 다른 모든 파일 형식의 경우 시작 위치를 문서로 설정합니다. 단지 시작 위치일 뿐입니다. 사용자는 파일 선택기를 사용하는 동안 다른 위치로 이동할 수 있습니다.

      또한 SuggestedStartLocation이 항상 파일 선택기의 시작 위치로 사용되는 것은 아닙니다. 사용자에게 일관성을 제공하기 위해 파일 선택기는 사용자가 마지막으로 본 위치를 기억하며 일반적으로 해당 위치에서 시작합니다.

    • openPicker.FileTypeFilter.Add를 사용하여 사용자가 파일 선택기에서 볼 수 있는 파일 형식을 지정하면 사용자가 관련성이 있고 유용한 파일을 선택하는 데 집중하도록 할 수 있습니다.

      
      openPicker.FileTypeFilter.Add(".jpg");
      openPicker.FileTypeFilter.Add(".jpeg");
      openPicker.FileTypeFilter.Add(".png");
      
      

      C#의 경우:  Add는 C# 개발자를 위한 Append 메서드의 이름입니다.

      표시되는 파일이 계속 관련성을 유지하도록 하려면 파일 선택기에 표시할 파일 형식을 지정해야 합니다. 예를 들어 앱이 비디오 플레이어인 경우 FileTypeFilter 속성을 사용하면 비디오 파일 이름 확장명에 따라 파일 선택기에 표시되는 파일이 플레이어에서 지원하는 비디오 형식이 되도록 할 수 있습니다.

      FileTypeFilter의 이전 파일 형식을 새 항목으로 대체하려면 Add 대신 ReplaceAll 메서드를 사용할 수 있습니다.

  2. FileOpenPicker 표시

    이제 사용자가 단일 파일이나 여러 파일을 선택하도록 파일 선택기를 표시할 수 있습니다.

    • 사용자가 단일 파일을 선택하도록 표시

      파일 선택기를 만들어 사용자 지정한 후 FileOpenPicker.PickSingleFileAsync에서 await를 호출하여 사용자가 파일 하나만 선택하도록 할 수 있습니다.

      사용자가 파일을 선택하면 FileOpenPicker.PickSingleFileAsync는 선택된 파일을 나타내는 StorageFile 개체를 반환합니다.

      파일 선택기 샘플(영문)에서는 파일 한 개를 선택하는 파일 선택기를 표시하는 방법에 대해 설명합니다.

      
      StorageFile file = await openPicker.PickSingleFileAsync();
      if (file != null)
      {
          // Application now has read/write access to the picked file
          OutputTextBlock.Text = "Picked photo: " + file.Name;
      }
      else
      {
          OutputTextBlock.Text = "Operation cancelled.";
      }
      
      
      
    • 사용자가 여러 파일을 선택하도록 표시

      파일 선택기를 만들어 사용자 지정한 후 FileOpenPicker.PickMultipleFilesAsync에서 await를 호출하여 사용자가 파일을 여러 개 선택하도록 할 수 있습니다.

      사용자가 여러 파일을 선택하면 FileOpenPicker.PickMultipleFilesAsync는 선택한 파일 목록을 반환합니다. 이 목록의 파일은 StorageFile 개체로 표시됩니다.

      파일 선택기 샘플에서는 사용자가 여러 파일을 선택할 수 있는 파일 선택기를 표시하는 방법과 처리하기 위해 선택한 파일 목록을 캡처하는 방법을 보여 줍니다.

      
      IReadOnlyList<StorageFile> files = await openPicker.PickMultipleFilesAsync();
      if (files.Count > 0)
      {
          StringBuilder output = new StringBuilder("Picked files:\n");
          // Application now has read/write access to the picked file(s)
          foreach (StorageFile file in files)
          {
              output.Append(file.Name + "\n");
          }
          OutputTextBlock.Text = output.ToString();
      }
      else
      {
          OutputTextBlock.Text = "Operation cancelled.";
      }
      
      
      

한 폴더를 선택하는 전체 코드

파일 선택기 샘플에서는 FolderPicker를 사용하여 사용자가 단일 파일을 선택하도록 하는 방법에 대해 설명합니다.


if (rootPage.EnsureUnsnapped())
{
    FolderPicker folderPicker = new FolderPicker();
    folderPicker.SuggestedStartLocation = PickerLocationId.Desktop;
    folderPicker.FileTypeFilter.Add(".docx");
    folderPicker.FileTypeFilter.Add(".xlsx");
    folderPicker.FileTypeFilter.Add(".pptx");

    StorageFolder folder = await folderPicker.PickSingleFolderAsync();
    if (folder != null)
    {
        // Application now has read/write access to all contents in the picked folder (including other sub-folder contents)
        StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", folder);
        OutputTextBlock.Text = "Picked folder: " + folder.Name;
    }
    else
    {
        OutputTextBlock.Text = "Operation cancelled.";
    }
}


여러 파일을 선택하는 전체 코드는 파일 선택기 샘플을 참조하세요.

한 폴더 선택 연습

파일 선택기를 호출하려면 파일 선택기 개체 만들기 및 사용자 지정, 사용자가 항목을 선택할 수 있도록 파일 선택기 표시의 두 가지 기본 작업을 수행해야 합니다.

  1. FolderPicker 만들기 및 사용자 지정

    사용자가 폴더를 선택할 경우 FolderPicker를 사용합니다. 만든 개체에서 속성을 설정하여 이 클래스를 사용자 지정할 수 있습니다.

    파일 선택기 샘플에서는 FolderPicker 개체를 만들고 사용자 지정하는 방법에 대해 설명합니다.

    
    FolderPicker folderPicker = new FolderPicker();
    folderPicker.SuggestedStartLocation = PickerLocationId.Desktop;
    folderPicker.FileTypeFilter.Add(".docx");
    folderPicker.FileTypeFilter.Add(".xlsx");
    folderPicker.FileTypeFilter.Add(".pptx");
    
    
    

    사용자 및 앱과 관련된 파일 선택기 개체에서 속성을 설정해야 합니다. 파일 선택기 사용자 지정 방법을 결정하는 데 도움이 되는 지침은 파일 선택기에 대한 지침 및 검사 목록을 참조하세요. 파일 선택기 샘플에서 파일 선택기를 사용자 지정하기 위해 특정 속성을 설정하는 이유에 대한 설명을 보려면 계속 읽어 보세요.

    파일 선택기 샘플 FolderPicker 사용자 지정(설명)

    파일 선택기 샘플에서는 세 가지 FolderPicker 속성(ViewMode, SuggestedStartLocationFileTypeFilter 속성)을 사용하여 폴더를 선택하도록 파일 선택기를 사용자 지정합니다.

    • folderPicker.ViewMode에 기본 PickerViewMode.List를 사용하면 파일 선택기에서 목록과 유사한 디스플레이를 만들 수 있습니다. 이 목록은 문서와 같이 시각적이지 않은 파일을 선택하는 데 적합합니다.

      파일 선택기를 사용하여 사진이나 비디오 같은 시각적 파일을 표시하려면 ViewModePickerViewMode.Thumbnail로 설정해야 합니다. 그렇지 않으면 PickerViewMode.List를 사용합니다.

      사진이나 비디오 같은 시각적 파일을 표시하려면 다음과 같이 folderPicker.ViewModeThumbnail로 설정해야 합니다.

      
      folderPicker.ViewMode = PickerViewMode.Thumbnail;
      
      
    • PickerLocationId.Desktop을 사용하여 folderPicker.SuggestedStartLocation을 사용자의 데스크톱으로 설정하면 사용자가 많이 사용하는 익숙한 위치에서 시작할 수 있습니다.

      
      folderPicker.SuggestedStartLocation = PickerLocationId.Desktop;
      
      

      SuggestedStartLocation은 사용자가 선택하려는 폴더의 형식에 적합한 파일 시스템 위치로 설정해야 합니다. 예를 들어 사용자가 음악 파일이 포함된 폴더를 선택하려는 경우에는 음악에서 시작해야 합니다. 단지 시작 위치일 뿐이며, 사용자는 파일 선택기를 사용하는 동안 다른 위치로 이동할 수 있습니다.

      또한 SuggestedStartLocation이 항상 파일 선택기의 시작 위치로 사용되는 것은 아닙니다. 사용자에게 일관성을 제공하기 위해 파일 선택기는 사용자가 마지막으로 본 위치를 기억하며 일반적으로 해당 위치에서 시작합니다.

    • folderPicker.FileTypeFilter.Add를 사용하여 사용자가 파일 선택기에서 볼 수 있는 파일 형식을 지정하면 사용자가 관련된 폴더를 선택하는 데 집중하도록 할 수 있습니다.

      
      folderPicker.FileTypeFilter.Add(".docx");
      folderPicker.FileTypeFilter.Add(".xlsx");
      folderPicker.FileTypeFilter.Add(".pptx");
      
      
      참고  Add는 C# 개발자를 위해 만들어진 Append 메서드입니다.

      사용자는 FolderPicker를 통해 폴더만 선택할 수 있으며 개별 파일은 선택할 수 없습니다. 그러나 FolderPicker에 관련 파일을 표시하면 사용자가 선택할 폴더를 결정하는 데 도움이 됩니다. 예를 들어 FolderPicker를 사용하여 사진을 가져올 위치를 선택하려는 경우 이미지 파일을 표시하면 사용자가 위치를 선택할 때 가져올 항목을 식별하는 데 도움이 됩니다.

  2. 사용자가 단일 폴더를 선택하도록 FolderPicker 표시

    FolderPicker를 만들어 사용자 지정한 후 FolderPicker.PickSingleFolderAsync에서 await를 호출하여 사용자가 파일 하나만 선택하도록 할 수 있습니다.

    사용자가 폴더를 선택하면 FolderPicker.PickSingleFolderAsync는 선택된 폴더를 나타내는 StorageFolder를 반환합니다.

    파일 선택기 샘플에서는 사용자가 폴더를 선택할 수 있는 파일 선택기를 표시하는 방법과 처리하기 위해 선택한 폴더를 캡처하는 방법을 보여 줍니다.

    
    StorageFolder folder = await folderPicker.PickSingleFolderAsync();
    if (folder != null)
    {
        // Application now has read/write access to all contents in the picked folder (including other sub-folder contents)
        StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", folder);
        OutputTextBlock.Text = "Picked folder: " + folder.Name;
    }
    else
    {
        OutputTextBlock.Text = "Operation cancelled.";
    }
    
    
    

요약 및 다음 단계

여기에 나온 것과 유사한 코드를 사용하는 경우 앱에서는 파일 선택기를 표시하여 사용자가 앱에서 열 수 있는 파일이나 폴더를 하나 이상 선택할 수 있게 됩니다.

  앱이 파일 선택기를 통해 파일 또는 폴더에 액세스할 경우 항상 해당 항목을 앱의 FutureAccessList 또는 MostRecentlyUsedList에 추가하여 추적합니다. 이러한 목록을 사용하는 방법에 대한 자세한 내용은 최근에 사용한 파일 및 폴더를 추적하는 방법을 참조하세요.

파일 읽기 및 쓰기에 대한 자세한 내용은 빠른 시작: 파일 읽기 및 쓰기파일 액세스 샘플을 참조하세요. 이미지 파일 작업에 대한 자세한 내용은 빠른 시작: Image 및 ImageBrush, 빠른 시작: 이미징XAML 이미지 샘플(영문)을 참조하세요.

파일 선택기를 호출하여 파일을 저장하는 방법에 대한 자세한 내용은 파일 선택기를 통해 파일을 저장하는 방법을 참조하세요.

앱에서 다른 앱에 파일, 저장 위치 또는 파일 업데이트를 제공하도록 하려면 빠른 시작: 파일 선택기 계약과 통합을 참조하세요.

관련 항목

파일 선택기 샘플
파일 액세스 샘플
XAML 이미지 샘플
파일 선택기에 대한 지침 및 검사 목록
파일 선택기를 통해 파일을 저장하는 방법
최근에 사용한 파일 및 폴더를 추적하는 방법
빠른 시작: 파일 읽기 및 쓰기
빠른 시작: Image 및 ImageBrush
빠른 시작: 이미징
파일 액세스 및 사용 권한
빠른 시작: 파일 선택기 계약과 통합
네임스페이스 참조
Windows.Storage.Pickers namespace
Windows.Storage.Pickers.FileOpenPicker class
Windows.Storage.Pickers.FolderPicker class
Windows.Storage.Pickers.PickerLocationId enum
Windows.Storage.Pickers.PickerViewMode enum

 

 

표시:
© 2015 Microsoft