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

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

ファイル ピッカーを使って、アプリのコンテンツへのアクセス、保存場所、またはファイルの更新を提供します。そのためには、アプリをファイル オープン ピッカー コントラクト、ファイル保存ピッカー コントラクト、またはキャッシュ ファイル アップデーター コントラクトと統合します。

必要条件

アプリでファイル ピッカー ウィンドウから提供するサービスを決定する

関連付けられたアプリ コントラクトと統合して、他のアプリに対して次のサービスを提供することができます。コントラクトに参加するには、アプリ マニフェストでコントラクトを宣言し、対応するアクティブ化されたイベントに応答して、専用のアプリ ビューを作る必要があります。

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

ファイルに対する独自のビューまたは重要なビューをアプリが備えている場合や、別の方法ではユーザーが容易にファイルにアクセスできない場合は、ファイル ピッカーからファイルにアクセスできるようにします。

アプリ コントラクト: ファイル オープン ピッカー コントラクト

アクティブ化されたイベントの情報: fileOpenPickerActivatedEventArgs

保存場所を提供する

ユーザーが後からアプリでファイルを開いて操作するためにファイルを保存することが予想される場合は、ファイル ピッカーで保存場所を提供します。

アプリ コントラクト: ファイル保存ピッカー コントラクト

アクティブ化されたイベントの情報: fileSavePickerActivatedEventArgs

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

アプリでアクセスを提供するファイル、またはアプリを保存場所として保存されるファイルを集中的に管理するリポジトリとして、ユーザーがアプリを使うことが予想される場合は、ファイル ピッカーを通じてファイルの追跡と更新を行います。

アプリ コントラクト: キャッシュ ファイル アップデーター コントラクト

アクティブ化されたイベントの情報: cachedFileUpdaterActivatedEventArgs

ファイル ピッカーを通じてアプリで提供できるサービスについて詳しくは、「クイック スタート: ファイル ピッカーによるファイルへのアクセス」をご覧ください。

アプリ マニフェストでコントラクトを宣言する

Microsoft Visual Studio でプロジェクトを開いて、次の手順に従ってマニフェストにアプリ コントラクトを追加します。

  1. プロジェクトで [新しい項目の追加] ウィンドウを開き、中央のウィンドウからコントラクトを選んで [追加] をクリックしてアプリ コントラクトを追加します。

    Visual Studio で [新しい項目の追加] ウィンドウを開く方法はいくつかあります。

    • メニューの [プロジェクト] > [新しい項目の追加] を順にクリックする
    • プロジェクトのコンテキスト メニューの [追加] > [新しい項目] を順にクリックする
    • キーボード ショートカット Ctrl + Shift + A を使う

    ヒント  これらのコントラクトを追加すると、Visual Studio が自動的に "package.appmanifest" マニフェスト ファイルを更新し、ビューのレイアウトと動作の定義に使うプロジェクトにファイルを追加します。このビューは、アプリのサービスが呼び出されたときにファイル ピッカー ウィンドウにホストされます。

     

  2. 既定の設定がアプリに適さない場合は、Visual Studio でコントラクトの設定をカスタマイズします。

    1. "package.appmanifest" を開きます。

    2. [宣言] タブを開きます。

    3. [サポートされる宣言] ボックスの一覧からコントラクト名を選びます。

    4. 特定のファイルの種類に対するサポートを追加します。

      [サポートされるファイルの種類] ボックスで、SupportsAnyFileType チェック ボックスをオフにします。

      次の手順に従って、サポートするファイルの種類ごとに、FileType フィールドを新しく追加します。

      1. [新規追加] をクリックします。
      2. サポートするファイルの種類の拡張子を FileType フィールドに *.ext のように入力します。

      ヒント  アプリ、ユーザー、コントラクトに直接関連するファイルの種類だけを追加してください。このようにファイルの種類を制限すると、ファイル ピッカーのビューがすっきりと整理され、使いやすくなります。

       

    前の手順に従って、削除する種類の [削除] をクリックして、ファイルの種類に対するサポートを削除することもできます。[削除]FileType フィールドのすぐ上にあります。

マニフェスト ファイルが更新され、追加したコントラクトのマークアップが追加されます。追加したコントラクトを表す要素が、Extensions 要素の子としてマニフェスト XML マークアップに挿入されます。たとえば、すべてのファイルの種類をサポートするファイル オープン ピッカー コントラクトのマークアップは次のようになります。


  <Extension Category="windows.filePicker" StartPage="filePicker.html">
    <FileOpenPicker>
      <SupportedFileTypes SupportsAnyFileType="true" />
    </FileOpenPicker>
  </Extension>

ファイル ピッカーからアプリがアクティブ化されたときに応答する

マニフェストに宣言したコントラクトに関連するハンドラーに渡されたオブジェクトをテストしてから、アプリにファイル ピッカーのビューを表示するコードを、アクティブ化されたイベント ハンドラーに追加します。

個々のコントラクトには、アクティブ化されたイベントに関する情報を提供するオブジェクトが関連付けられています。アプリが提供するサービスがファイル ピッカーから呼び出されたとき、イベントが発生します。

ファイル オープン ピッカー コントラクト - fileOpenPickerActivatedEventArgs

ファイル保存ピッカー コントラクト - fileSavePickerActivatedEventArgs

キャッシュ ファイル アップデーター コントラクト - cachedFileUpdaterActivatedEventArgs

ファイル ピッカーにホストする、アプリの専用のビューを作成する

ファイル ピッカーのガイドラインとチェック リスト」で説明されているファイル ピッカーに関するガイダンスは、ファイル ピッカーにホストするアプリ ビューの設計に役立ちます。

最終的に、ビューは次のもので構成する必要があります。

  • ファイル ピッカーのレターボックスを適切にカスタマイズするコード

  • ファイル ピッカーで、枠で囲まれた領域 (ファイルが表示される場所) のレイアウトを定義するマークアップとスタイル

  • 枠で囲まれた領域にファイルが表示されるようにデータ ソースをマークアップにバインドするコード

別のアプリから呼び出されたファイル ピッカーにより提供されるサービスをテストする

ファイル ピッカーによりアプリが提供するサービスをテストするには、アプリが提供するサービスに対応するアクティブ化されたイベントをトリガーする必要があります。このイベントは、アプリを直接実行する方法ではトリガーできません。

代わりに、次の手順に従って各コントラクトに対応するアクティブ化されたイベントをトリガーします。

ファイル オープン ピッカー コントラクトへのアプリの参加をテストするには

  1. 自分のアプリではない別のアプリを起動します。

  2. この別のアプリの UI を使ってファイル ピッカー ウィンドウを呼び出し、ファイルにアクセスします。

  3. ファイル ピッカーで、場所の一覧から自分のアプリを選び、ファイル ピッカーにホストされたアプリを確認します。

ファイル保存ピッカー コントラクトへのアプリの参加をテストするには

  1. 自分のアプリではない別のアプリを起動します。

  2. この別のアプリの UI を使ってファイル ピッカー ウィンドウを呼び出し、ファイルを保存します。

  3. ファイル ピッカーで、場所の一覧から自分のアプリを選び、ファイル ピッカーにホストされたアプリを確認します。

キャッシュ ファイル アップデーター コントラクトへのアプリの参加をテストするには

  1. 自分のアプリではない別のアプリを起動します。

  2. この別のアプリの UI を使ってファイル ピッカー ウィンドウを呼び出し、更新対象としてマークを付けたファイルにアクセスするかファイルを保存します。

要約

アプリ コントラクトに参加して、他のアプリに対してサービスを提供することができます。コントラクトに参加するには、アプリ マニフェストでコントラクトを宣言し、対応するアクティブ化されたイベントに応答して、専用のアプリ ビューを作る必要があります。

関連トピック

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

ファイル ピッカー コントラクトとの統合

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

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

アプリをアクティブ化する方法

Windows アプリ コントラクト

辞書/リファレンス

Windows.Storage.Pickers.Provider namespace

Windows.ApplicationModel.Activation.fileOpenPickerActivatedEventArgs class

Windows.ApplicationModel.Activation.fileSavePickerActivatedEventArgs class

Windows.ApplicationModel.Activation.cachedFileUpdaterActivatedEventArgs class

ファイル ピッカーの使用

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

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

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