最近使ったファイルやフォルダーの追跡

重要な API

ユーザーが頻繁にアクセスするファイルを追跡するには、そのファイルを最近使ったアプリの一覧 (MRU) に追加します。 プラットフォームは、最後にアクセスされた時期に基づいて項目を並べ替え、リストの 25 項目の制限に達した場合に最も古い項目を削除することによって、MRU を管理します。 すべてのアプリにはそれぞれに専用の MRU があります。

お使いのアプリの MRU は、静的な StorageApplicationPermissions.MostRecentlyUsedList プロパティから取得する StorageItemMostRecentlyUsedList クラスによって表されます。 MRU の項目は IStorageItem オブジェクトとして格納されます。つまり、StorageFile オブジェクト (ファイルを表すオブジェクト) と StorageFolder オブジェクト (フォルダーを表すオブジェクト) は、どちらも MRU に追加できます。

Note

 完全なサンプルについては、ファイル ピッカーのサンプルファイル アクセスのサンプルに関するページをご覧ください。

前提条件

MRU に選んだファイルを追加する

  • ユーザーは同じファイルを繰り返し選ぶ傾向にあります。 そのため、選んだファイルはできるだけ早くアプリの MRU に追加することを検討してください。 ここではその方法を説明します。

    Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
    
    var mru = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList;
    string mruToken = mru.Add(file, "profile pic");
    

    StorageItemMostRecentlyUsedList.Add がオーバーロードされます。 この例では Add(IStorageItem, String) を使って、メタデータをファイルに関連付けられるようにしています。 メタデータを設定すると、その項目の目的 ("プロファイル画像" など) を記録できます。 メタデータなしで MRU にファイルを追加するには、Add(IStorageItem) を呼び出します。 MRU に項目を追加すると、項目を取得するときに使われる一意に識別するための文字列であるトークンが返されます。

ヒント

項目を MRU から取得するにはそのトークンが必要であるため、どこかに保存しておいてください。 アプリ データの詳細については、「アプリケーション データの管理」をご覧ください。

トークンを使って MRU から項目を取得する

取得する項目に最適な取得メソッドを使います。

先ほど追加したファイルを取得する方法は次のとおりです。

StorageFile retrievedFile = await mru.GetFileAsync(mruToken);

すべてのエントリを反復処理してトークンを取得した後に項目を取得する方法は次のとおりです。

foreach (Windows.Storage.AccessCache.AccessListEntry entry in mru.Entries)
{
    string mruToken = entry.Token;
    string mruMetadata = entry.Metadata;
    Windows.Storage.IStorageItem item = await mru.GetItemAsync(mruToken);
    // The type of item will tell you whether it's a file or a folder.
}

AccessListEntryView を使うと MRU 内のエントリを反復処理できます。 これらのエントリは、項目のトークンとメタデータが格納された AccessListEntry 構造体です。

空きのない MRU から項目を削除する

MRU の上限である 25 項目に達している場合、新しい項目を追加しようとすると、最後にアクセスしてからの経過時間が最も長い項目が自動的に削除されます。 そのため、新しい項目を追加する前に項目を削除する必要はありません。

後でアクセスする一覧

アプリには MRU のほか、後でアクセスする一覧もあります。 ファイルやフォルダーを選ぶことで、ユーザーはアプリがアクセスできない可能性がある項目にアクセス許可を付与します。 これらの項目を後でアクセスする一覧に追加すると、後にそれらの項目にアプリがアクセスする場合に備えてアクセス許可が保持されます。 お使いのアプリの、後でアクセスする一覧は、静的な StorageApplicationPermissions.FutureAccessList プロパティから取得する StorageItemAccessList クラスによって表されます。

ユーザーが項目を選ぶ際には、MRU のほか、後でアクセスする一覧にも追加することを検討してください。

  • FutureAccessList は最大 1,000 項目を保持できます。 ファイル以外にもフォルダーを保持できるため、大量のフォルダーがあることにご注意ください。
  • プラットフォームによって FutureAccessList から項目が削除されることはありません。 項目の数が上限の 1,000 に到達した場合、Remove メソッドで空きを確保するまで項目を追加できません。