파일 액세스 및 사용 권한(Windows 런타임 앱)

Applies to Windows and Windows Phone

앱은 기본적으로 특정 파일 시스템 위치에 액세스할 수 있습니다. 또한 앱은 파일 선택기를 통해서나 접근 권한 값을 선언하여 추가 위치에 액세스할 수도 있습니다.

  • Applies to Windows
  • Applies to Windows Phone

모든 앱이 액세스할 수 있는 위치

새 앱을 만들면 기본적으로 다음 파일 시스템 위치에 액세스할 수 있습니다.

  • 응용 프로그램 설치 디렉터리. 사용자 시스템에서 앱이 설치된 폴더입니다.

    다음과 같은 두 가지 기본 방법으로 앱의 설치 디렉터리에 있는 파일과 폴더에 액세스할 수 있습니다.

    1. 아래와 같이 앱의 설치 디렉터리를 나타내는 StorageFolder를 검색할 수 있습니다.

      
      
      var installDirectory = Windows.ApplicationModel.Package.current.installedLocation;
      
      

      설치 디렉터리를 나타내는 StorageFolder를 검색한 후 StorageFolder 메서드를 사용하여 디렉터리의 파일과 폴더에 액세스할 수 있습니다. 위 예제에서 이 StorageFolderinstallDirectory 변수에 저장됩니다. 앱 패키지 및 설치 디렉터리 작업에 대한 자세한 내용을 보려면 앱 패키지 정보 샘플을 다운로드하세요.

    2. 아래와 같이 앱 URI를 사용하여 앱의 설치 디렉터리에서 직접 파일을 검색할 수 있습니다.

      
      
      Windows.Storage.StorageFile.getFileFromApplicationUriAsync("ms-appx:///file.txt").done(
          function(file) {
              // Process file
          }
      );
      
      

      GetFileFromApplicationUriAsync가 완료되면 앱 설치 디렉터리에 있는 file.txt 파일(이 예제에서는 file)을 나타내는 StorageFile을 반환합니다.

      URI의 "ms-appx:///" 접두사는 앱의 설치 디렉터리를 나타냅니다. 앱 URI 사용에 대한 자세한 내용은 URI를 사용하여 콘텐츠를 참조하는 방법을 참조하세요.

    또한 다른 위치와는 달리 일부 Windows 스토어 앱용 Win32 및 COM Microsoft Visual Studio의 C/C++ 표준 라이브러리 기능을 사용하여 앱 설치 디렉터리에서 파일에 액세스할 수 있습니다.

    앱의 설치 디렉터리는 읽기 전용 위치입니다. 파일 선택기를 통해서는 설치 디렉터리에 액세스할 수 없습니다.

  • 응용 프로그램 데이터 위치. 앱이 데이터를 저장할 수 있는 폴더입니다. 이러한 폴더(로컬, 로밍 및 임시)는 앱이 설치될 때 만들어집니다.

    다음과 같은 두 가지 기본 방법으로 앱의 데이터 위치에 있는 파일과 폴더에 액세스할 수 있습니다.

    1. ApplicationData 속성을 사용하여 앱 데이터 폴더를 검색합니다.

      예를 들어 ApplicationData.LocalFolder를 사용하여 아래와 같이 앱의 로컬 폴더를 나타내는 StorageFolder를 검색할 수 있습니다.

      
      
      var localFolder = Windows.Storage.ApplicationData.current.localFolder;
      
      

      앱의 로밍 또는 임시 폴더에 액세스하려면 대신 RoamingFolder 또는 TemporaryFolder 속성을 사용합니다.

      앱 데이터 위치를 나타내는 StorageFolder를 검색한 후 StorageFolder 메서드를 사용하여 해당 위치의 파일과 폴더에 액세스할 수 있습니다. 위 예제에서 이 StorageFolder 개체는 localFolder 변수에 저장됩니다. 앱 데이터 위치 사용에 대해 자세히 알아보려면 응용 프로그램 데이터 관리를 참조하거나 응용 프로그램 데이터 샘플을 다운로드하세요.

    2. 예를 들어 아래와 같이 앱 URI를 사용하여 앱의 로컬 폴더에서 직접 파일을 검색할 수 있습니다.

      
      
      Windows.Storage.StorageFile.getFileFromApplicationUriAsync("ms-appdata:///local/file.txt").done(
          function(file) {
              // Process file
          }
      );
      
      

      GetFileFromApplicationUriAsync가 완료되면 앱의 로컬 폴더에 있는 file.txt 파일(이 예제에서는 file)을 나타내는 StorageFile을 반환합니다.

      URI의 "ms-appdata:///local/" 접두사는 앱의 로컬 폴더를 나타냅니다. 앱의 로밍 또는 임시 폴더에 있는 파일에 액세스하려면 대신 "ms-appdata:///roaming/" 또는 "ms-appdata:///temporary/"를 사용합니다. 앱 URI 사용에 대한 자세한 내용은 파일 리소스를 로드하는 방법을 참조하세요.

    또한 다른 위치와는 달리 일부 Windows 스토어 앱용 Win32 및 COM 및 Microsoft Visual Studio의 C/C++ 표준 라이브러리 기능을 사용하여 앱 데이터 위치에서 파일에 액세스할 수 있습니다.

    파일 선택기를 통해서는 로컬, 로밍 또는 임시 폴더에 액세스할 수 없습니다.

  • 이동식 장치. 또한 앱은 연결된 장치의 일부 파일에 기본적으로 액세스할 수 있습니다. 사용자가 카메라나 USB 썸 드라이브(thumb drive)와 같은 장치를 시스템에 연결할 때 앱이 자동 실행 확장을 사용하여 자동으로 실행되는 경우 이것은 옵션입니다. 앱이 액세스할 수 있는 파일은 앱 매니페스트에서 파일 형식 연결 선언을 통해 지정한 특정 파일 형식으로 제한됩니다.

    물론 이동식 장치의 파일과 폴더에도 액세스할 수 있는데, 이 경우에는 파일 선택기(FileOpenPickerFolderPicker 사용)를 호출하고 앱에서 액세스할 파일과 폴더를 사용자가 선택하게 합니다. 파일 선택기 사용 방법에 대한 자세한 내용은 빠른 시작: 파일 선택기를 사용하여 파일 액세스를 참조하세요.

    참고  Windows Phone 앱에서 SD 카드에 액세스하는 데 대한 자세한 내용은 Windows Phone 앱에서 SD 카드에 액세스를 참조하세요.

  • Applies to Windows

대부분의 앱이 액세스할 수 있는 위치

  • 사용자의 다운로드 폴더. 다운로드된 파일이 기본적으로 저장되는 폴더입니다.

    기본적으로 앱은 직접 만든 사용자의 다운로드 폴더에 있는 파일과 폴더에만 액세스할 수 있습니다. 그러나 파일 선택기(FileOpenPicker 또는 FolderPicker)를 호출하여 사용자 다운로드 폴더의 파일과 폴더에 액세스할 수 있으므로 앱에서 액세스할 파일이나 폴더를 사용자가 탐색하고 선택할 수 있습니다.

    • 아래와 같이 사용자 다운로드 폴더에 파일을 만들 수 있습니다.

      
      Windows.Storage.DownloadsFolder.createFileAsync("file.txt").done(
          function(newFile) {
              // Process file
          }
      );
      
      

      DownloadsFolder.CreateFileAsync는 오버로드되므로 다운로드 폴더에 동일한 이름의 기존 파일이 이미 있는 경우 시스템에서 어떻게 할지를 지정할 수 있습니다. 이러한 메서드가 완료되면 만든 파일을 나타내는 StorageFile을 반환합니다. 위 예제에서 이 파일은 newFile입니다.

    • 아래와 같이 사용자 다운로드 폴더에 하위 폴더를 만들 수 있습니다.

      
      Windows.Storage.DownloadsFolder.createFolderAsync("New Folder").done(
          function(newFolder) {
              // Process folder
          }
      );
      
      

      DownloadsFolder.CreateFolderAsync는 오버로드되므로 다운로드 폴더에 동일한 이름의 기존 하위 폴더가 이미 있는 경우 시스템에서 어떻게 할지를 지정할 수 있습니다. 이러한 메서드가 완료되면 만든 하위 폴더를 나타내는 StorageFolder를 반환합니다. 위 예제에서 이 파일은 newFolder입니다.

    다운로드 폴더에 파일이나 폴더를 만드는 경우 해당 항목의 앱의 FutureAccessList에 추가하여 앱이 나중에 해당 항목에 쉽게 액세스할 수 있도록 하는 것이 좋습니다.

추가 위치 액세스

기본 위치 외에 앱은 앱 매니페스트에 접근 권한 값을 선언하거나(앱 기능 선언 참조) 파일 선택기를 호출하여 앱이 액세스할 파일과 폴더를 사용자가 선택하게 하는(빠른 시작: 파일 선택기를 사용하여 파일 액세스) 방법으로 추가 파일과 폴더에 액세스할 수 있습니다.

다음 표에는 접근 권한 값을 선언하고 관련 Windows.Storage API를 사용하여 액세스할 수 있는 추가 위치가 나와 있습니다.

위치접근 권한 값Windows.Storage API

문서

(Windows 스토어 앱만 해당)

DocumentsLibrary

참고  앱이 이 위치에서 액세스할 수 있는 특정 파일 형식을 선언하는 파일 형식 연결을 앱 매니페스트에 추가해야 합니다.

앱에서 다음 작업을 하려는 경우 이 접근 권한 값을 사용합니다.

  • 유효한 OneDrive URL 또는 리소스 ID를 사용하여 특정 OneDrive 콘텐츠에 대한 플랫폼 간 오프라인 액세스를 용이하게 합니다.
  • 오프라인에 있는 동안 열려 있는 파일을 사용자의 OneDrive에 자동으로 저장합니다.
KnownFolders.DocumentsLibrary
음악MusicLibrary

Windows Phone 앱에서 미디어 라이브러리에 액세스하는 데 대한 자세한 내용은 Windows Phone 앱에서 미디어 라이브러리에 액세스를 참조하세요.

KnownFolders.MusicLibrary
사진PicturesLibrary

Windows Phone 앱에서 미디어 라이브러리에 액세스하는 데 대한 자세한 내용은 Windows Phone 앱에서 미디어 라이브러리에 액세스를 참조하세요.

KnownFolders.PicturesLibrary
비디오VideosLibrary

Windows Phone 앱에서 미디어 라이브러리에 액세스하는 데 대한 자세한 내용은 Windows Phone 앱에서 미디어 라이브러리에 액세스를 참조하세요.

KnownFolders.VideosLibrary
이동식 장치RemovableDevices

참고  앱이 이 위치에서 액세스할 수 있는 특정 파일 형식을 선언하는 파일 형식 연결을 앱 매니페스트에 추가해야 합니다.

Windows Phone 앱에서 SD 카드에 액세스하는 데 대한 자세한 내용은 Windows Phone 앱에서 SD 카드에 액세스를 참조하세요.

KnownFolders.RemovableDevices

홈 그룹 라이브러리

(Windows 스토어 앱만 해당)

다음 접근 권한 값 중 하나 이상이 필요합니다.

KnownFolders.HomeGroup

미디어 서버 장치(DLNA)

(Windows 스토어 앱만 해당)

다음 접근 권한 값 중 하나 이상이 필요합니다.

KnownFolders.MediaServerDevices

UNC(범용 명명 규칙) 폴더

(Windows 스토어 앱만 해당)

다음과 같은 접근 권한 값의 조합이 필요합니다.

참고  앱이 이 위치에서 액세스할 수 있는 특정 파일 형식을 선언하는 파일 형식 연결을 앱 매니페스트에 추가해야 합니다.

다음을 사용하여 폴더 검색:

StorageFolder.GetFolderFromPathAsync

다음을 사용하여 파일 검색:

StorageFile.GetFileFromPathAsync

 

관련 항목

응용 프로그램 데이터 관리
JavaScript 리소스
빠른 시작: 파일 읽기 및 쓰기
빠른 시작: 파일 선택기를 사용하여 파일에 액세스
파일 리소스를 로드하는 방법
최근에 사용한 파일 및 폴더를 추적하는 방법
C#/C++/VB 리소스
빠른 시작: 파일 읽기 및 쓰기
빠른 시작: 파일 선택기를 사용하여 파일에 액세스
파일 리소스를 로드하는 방법
최근에 사용한 파일 및 폴더를 추적하는 방법
샘플
앱 패키지 정보 샘플
응용 프로그램 데이터 샘플
파일 액세스 샘플
파일 선택기 샘플
API 참조
Windows.ApplicationModel.Package
Windows.Storage.ApplicationData
Windows.Storage.DownloadsFolder
Windows.Storage.Pickers.FileOpenPicker
Windows.Storage.Pickers.FolderPicker
Windows.Storage.KnownFolders
Windows.Storage.StorageFile
Windows.Storage.StorageFolder
Windows.Storage.FileIO
Windows.Storage.PathIO
Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList
Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList

 

 

표시:
© 2015 Microsoft