ファイル ピッカー コントラクトとの統合 (Windows ランタイム アプリ)

[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]

アプリでは、ファイル ピッカーを使って、他のアプリにファイル、保存場所、さらにファイルの更新を提供することができます。そのためには、ファイル オープン ピッカー コントラクト、ファイル保存ピッカー コントラクト、キャッシュ ファイル アップデーター コントラクトと統合します。

ファイル ピッカーの動作方法

ファイル ピッカーを通じて、アプリはユーザーのシステム全体のファイルとフォルダーにアクセスできます。ファイル ピッカーを呼び出すと、ユーザーはシステムやその他のアプリを参照し、ファイル (またはフォルダー) を選ぶことができます。ユーザーがファイルまたはフォルダーを選んだ後、アプリはこれらの選択を StorageFile オブジェクトと StorageFolder オブジェクトとして受け取ります。アプリはこれらのオブジェクトを使って、選ばれたファイルとフォルダーを操作できます。ファイルへのアクセスについて詳しくは、「ファイル アクセスとアクセス許可」をご覧ください。

ファイル ピッカーを使って、ユーザーがアプリでファイル ピッカーからファイルやフォルダーを選べるようにすることもできます。アプリからファイル ピッカーで選ばれたファイルは、ファイル システムから選ばれたファイルと同様に扱われ、StorageFile オブジェクトとして返されます。これにより、ユーザーはアプリからファイルを選び、別のアプリで操作することができます。たとえばフォト ギャラリーのアプリの場合、ユーザーがそのアプリを使ってフォトを選び、写真編集プログラムで変更を加えることができるように、ギャラリーでフォトを提供できます。

他のアプリにファイル、保存場所、ファイルの更新へのアクセスを提供する場合は、ファイル保存ピッカー コントラクト、ファイル オープン ピッカー コントラクト、キャッシュ ファイル アップデーター コントラクトなどの関連するアプリ コントラクトにアプリが参加する必要があります。このようなコントラクトに参加するには、アプリ マニフェストでコントラクトを宣言し、コントラクトと統合する UI やコードをアプリに追加します。

この図は、写真編集プログラムのようなアプリ (呼び出し元アプリ) をギャラリー アプリ (提供元アプリ) から提供されるファイルと接続して、ユーザーがギャラリー アプリからファイルを選べるようにするために、ファイル ピッカーが動作するようすを示しています。

ファイル ピッカーを 2 つのアプリの間のインターフェイスとして使って、一方のアプリのファイルをもう一方のアプリから開けるようにするプロセスを示す図。

ファイル ピッカー アプリ コントラクトへの参加

方法: クイック スタート: ファイル ピッカーによるファイルへのアクセスの提供

リファレンス: Windows.Storage.Pickers.Provider namespace

サンプル: ファイル ピッカー コントラクトのサンプル

ファイルへのアクセスを提供する

ファイルに対する独自のビューまたは重要なビューをアプリが備えている場合や、別の方法ではユーザーが容易にファイルにアクセスできない場合は、ファイル ピッカーを使って他のアプリにファイルを提供することを検討してください。ファイル ピッカーを通じてアプリで提供したファイルをユーザーが参照して選べるようにするには、ファイル オープン ピッカー コントラクトに参加します。このコントラクトに参加すると、ファイル ピッカーのレターボックスの左上にある場所の一覧からそのアプリを選べるようになります。ユーザーがこのアプリを選ぶと、レターボックスに対して行った変更と、ファイルを表示してユーザーが参照して選べるように設計したページがファイル ピッカーによって読み込まれます。

アプリのページが読み込まれる場所がわかるように中央の領域を強調表示したファイル ピッカーの画面。

このスクリーン ショットは、アプリのファイル表示ページが読み込まれる場所がわかるように、ファイル ピッカー ウィンドウの中央の領域を強調表示してラベルを付けたものです。

 

たとえば、音楽アプリであれば、ユーザーのシステムでのファイルの整理方法に関係なく、アーティストやアルバムのタイトル別にファイルを参照して選べるようにすることができます。また、フォト ギャラリー アプリであれば、ユーザーのシステムにはないが、Facebook や Flickr などの Web サービスでホストされているファイルを参照して選べるようにすることができます。

ファイル ピッカー ウィンドウでファイルを参照して選べるようにする以外に、共有ソース コントラクトと統合して、アプリからファイルを共有できるようにする方法もあります。共有ソース コントラクトとの統合について詳しくは、「ファイルを共有する方法」をご覧ください。

保存場所を提供する

ユーザーのファイルをホストするサービスにユーザーを接続する場合や、ユーザーが後からアプリでファイルを開いて操作するために複数のファイルを保存することが予想される場合は、ファイル ピッカーを使って、ユーザーがファイルを保存できる場所としてアプリを提供することを検討してください。ユーザーがアプリにファイルを保存できるようにするには、ファイル保存ピッカー コントラクトに参加します。このコントラクトに参加すると、ファイル ピッカーを使ってファイルを保存するときに、ファイル ピッカーのレターボックスの左上にある場所の一覧からそのアプリを選べるようになります。ユーザーがこのアプリを選ぶと、アプリの保存場所を表示するように設計したページがファイル ピッカーによって読み込まれます (既存のファイルやサブフォルダーがある場合はそれらも表示されます)。

アプリのページが読み込まれる場所がわかるように中央の領域を強調表示したファイル ピッカーのスクリーン ショット。

このスクリーン ショットは、アプリの保存場所を表示するページが読み込まれる場所がわかるように、ファイル ピッカー ウィンドウの中央の領域を強調表示してラベルを付けたものです (スクリーン ショットは Microsoft OneDrive のアプリ ページを示しています)。

 

たとえば、Facebook や OneDrive でホストされているファイルに接続するアプリを保存場所として使うことができるようにすると、ユーザーはホストするファイルを簡単にアップロードできます。また、オーディオ ファイルを編集できるアプリを保存場所として使えるようにすれば、ユーザーは次にエディターを開いたときに編集するオーディオ ファイルのキューを作成することができます。

他のアプリにファイルの保存場所として自分のアプリを使用させる方法は、ユーザーがファイルやフォルダーを使う場合に適しています。ただし、URL や選んだテキストなどの細かいデータを使う場合には適していません。そのような場合は、共有チャームやコピーと貼り付けの方が適しています。一方、共有チャームと保存の両方をサポートするのが望ましいこともよくあります。たとえば、ユーザーが OneDrive などのクラウド型ストレージ サービスを使ってファイルを保存するとします。この場合、共有チャームと保存は、どちらも有効なオプションです。つまり、ユーザーがどのようにアプリを使うかを考慮したうえで、ユーザーの期待に応えることができ、全体として最良のユーザー エクスペリエンスを提供するコントラクトや機能をサポートする必要があります。共有ターゲット コントラクトとの統合について詳しくは、「クイック スタート: 共有コンテンツの受信」をご覧ください。コピーと貼り付けのコマンドの使用について詳しくは、「クイック スタート: クリップボードの基本」をご覧ください。

ヒント  アプリを保存場所として使う場合は、ファイル オープン ピッカー コントラクトに参加して、アプリのファイルへのアクセスも提供する必要があります。

 

ファイルのリアルタイム更新を提供する

ユーザーのファイルを集中管理できるリポジトリへの接続や管理に使うアプリの場合は、ファイルの更新を提供することを検討してください。キャッシュ ファイル アップデーター コントラクトに参加すると、アプリのリポジトリにあるファイルの更新を実行できるほか、リポジトリにあるローカル バージョンのファイルに更新を提供することもできます。このコントラクトに参加しているアプリでユーザーの操作が必要な更新が発生すると、ユーザーから必要な情報を収集するために設計したページがファイル ピッカーによって読み込まれます。

たとえば、OneDrive や DropBox のようなリモート ストレージ アプリであれば、ファイルのローカル バージョンを更新して、リポジトリにある最新バージョンのファイルが表示されるようにしたり、ユーザーが新しいバージョンを保存する場合はリポジトリにあるファイルを更新したりできます。

ヒント  アプリでファイルの更新を提供する場合は、ファイル保存ピッカー コントラクトとファイル オープン ピッカー コントラクトに参加して、保存場所とファイルへのアクセスも提供する必要があります。

 

関連トピック

データとファイルへのアクセス

サンプル

ファイル ピッカーのサンプル

ファイル ピッカー コントラクトのサンプル

辞書/リファレンス

Windows.Storage.AccessCache namespace

Windows.Storage.Pickers namespace

Windows.Storage.Pickers.fileOpenPicker class

Windows.Storage.Pickers.fileSavePicker class

Windows.Storage.Pickers.Provider namespace

共有

ファイルを共有する方法

クイック スタート: 共有コンテンツの受信

ファイル ピッカーの使用

クイック スタート: ファイル ピッカーによるファイルへのアクセス

ファイル ピッカーでファイルを保存する方法

ファイル ピッカーのガイドラインとチェック リスト