ファイル アクセスとアクセス許可 (Windows ランタイム アプリ)

Applies to Windows and Windows Phone

アプリは既定でファイル システムの特定の場所にアクセスできます。 また、ファイル ピッカーを使うか機能を宣言すると、その他の場所にアクセスすることもできます。

  • Applies to Windows
  • Applies to Windows Phone

すべてのアプリからアクセスできる場所

新しいアプリを作成すると、既定でファイル システムの次の場所にアクセスできます。

  • アプリケーションのインストール ディレクトリ。ユーザーのシステムでアプリがインストールされているフォルダーです。

    アプリのインストール ディレクトリにあるファイルやフォルダーにアクセスする主な方法は 2 とおりあります。

    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 と COMMicrosoft Visual Studio の C/C++ 標準ライブラリ関数を使ってアプリのインストール ディレクトリ内のファイルにアクセスすることもできます。

    アプリのインストール ディレクトリは読み取り専用です。インストール ディレクトリにファイル ピッカーでアクセスすることはできません。

  • アプリケーション データの場所。アプリのデータを保存できるフォルダーです。 これらのフォルダー (ローカル、移動、一時) は、アプリのインストール時に作成されます。

    アプリ データの場所にあるファイルやフォルダーにアクセスする主な方法は 2 とおりあります。

    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 や Visual Studio の C/C++ 標準ライブラリ関数を使ってアプリ データの場所にあるファイルにアクセスすることもできます。

    ローカル フォルダー、移動フォルダー、一時フォルダーにファイル ピッカーでアクセスすることはできません。

  • リムーバブル デバイス。さらに、接続されているデバイス上の一部のファイルに既定でアクセスできます。これは、自動再生拡張機能を使って、ユーザーがデバイス (カメラや USB サム ドライブなど) をシステムに接続したときに自動的に起動されるようにする場合に使うことができます。アプリでアクセスできるファイルの種類は、アプリ マニフェストのファイルの種類の関連付けの宣言で指定されたものだけに制限されます。

    もちろん、ファイル ピッカー (FileOpenPickerFolderPicker) を呼び出して、アプリでアクセスするファイルやフォルダーをユーザーが選べるようにすると、リムーバブル デバイス上のファイルやフォルダーにもアクセスできます。ファイル ピッカーの使い方については、「クイック スタート: ファイル ピッカーによるファイルへのアクセス」をご覧ください。

      Windows Phone アプリから SD カードにアクセスする方法について詳しくは、「Windows Phone アプリでの SD カードへのアクセス」を参照してください。

  • Applies to Windows

ほとんどのアプリからアクセスできる場所

  • ユーザーの Downloads フォルダー。ダウンロードしたファイルが既定で保存されるフォルダーです。

    既定では、ユーザーの Downloads フォルダーにあるファイルやフォルダーについては、そのアプリで作成したものにしかアクセスできません。ただし、ファイル ピッカー (FileOpenPicker または FolderPicker) を呼び出して、アプリでアクセスするファイルやフォルダーをユーザーが参照して選べるようにすると、ユーザーの Downloads フォルダーにあるファイルやフォルダーにアクセスできるようになります。

    • 次のように、ユーザーの Downloads フォルダーにファイルを作成できます。

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

      DownloadsFolder.CreateFileAsync は、同じ名前のファイルが既に Downloads フォルダーにある場合の処理を指定できるようにオーバーロードされます。これらのメソッドが完了すると、作成されたファイルを表す StorageFile が返されます。上の例では、このファイルの名前は newFile です。

    • 次のように、ユーザーの Downloads フォルダーにサブフォルダーを作成できます。

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

      DownloadsFolder.CreateFolderAsync は、同じ名前のサブフォルダーが既に Downloads フォルダーにある場合の処理を指定できるようにオーバーロードされます。これらのメソッドが完了すると、作成されたサブフォルダーを表す StorageFolder が返されます。上の例では、このファイルの名前は newFolder です。

    Downloads フォルダーにファイルやフォルダーを作成する場合は、以降に簡単にアクセスできるように、その項目をアプリの 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 ストア アプリのみ)

次の機能が 1 つ以上必要です。

KnownFolders.HomeGroup

メディア サーバー デバイス (DLNA)

(Windows ストア アプリのみ)

次の機能が 1 つ以上必要です。

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

 

 

表示:
© 2014 Microsoft