最近使ったファイルやフォルダーの追跡Track recently used files and folders

重要な APIImportant APIs

ユーザーが頻繁にアクセスするファイルを追跡するには、そのファイルを最近使ったアプリの一覧 (MRU) に追加します。Track files that your user accesses frequently by adding them to your app's most recently used list (MRU). MRU はプラットフォームが管理し、最後にアクセスした日時に基づいて項目を並べ替えたり、一覧の上限である 25 項目に達したら最も古い項目を削除したりします。The platform manages the MRU for you by sorting items based on when they were last accessed, and by removing the oldest item when the list's 25-item limit is reached. すべてのアプリにはそれぞれに専用の MRU があります。All apps have their own MRU.

お使いのアプリの MRU は、静的な StorageApplicationPermissions.MostRecentlyUsedList プロパティから取得する StorageItemMostRecentlyUsedList クラスによって表されます。Your app's MRU is represented by the StorageItemMostRecentlyUsedList class, which you obtain from the static StorageApplicationPermissions.MostRecentlyUsedList property. MRU の項目は IStorageItem オブジェクトとして格納されます。つまり、StorageFile オブジェクト (ファイルを表すオブジェクト) と StorageFolder オブジェクト (フォルダーを表すオブジェクト) は、どちらも MRU に追加できます。MRU items are stored as IStorageItem objects, so both StorageFile objects (which represent files) and StorageFolder objects (which represent folders) can be added to the MRU.

注意

 完全なサンプルについては、ファイル ピッカーのサンプルファイル アクセスのサンプルに関するページをご覧ください。 For complete samples, see the File picker sample and the File access sample.

必要条件Prerequisites

MRU に選んだファイルを追加するAdd a picked file to the MRU

  • ユーザーは同じファイルを繰り返し選ぶ傾向にあります。The files that your user picks are often files that they return to repeatedly. そのため、選んだファイルはできるだけ早くアプリの MRU に追加することを検討してください。So consider adding picked files to your app's MRU as soon as they are picked. 以下にその方法を示します。Here's how.

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

    StorageItemMostRecentlyUsedList.Add がオーバーロードされます。StorageItemMostRecentlyUsedList.Add is overloaded. この例では Add(IStorageItem, String) を使って、メタデータをファイルに関連付けられるようにしています。In the example, we use Add(IStorageItem, String) so that we can associate metadata with the file. メタデータを設定すると、その項目の目的 ("プロファイル画像" など) を記録できます。Setting metadata lets you record the item's purpose, for example "profile pic". メタデータなしで MRU にファイルを追加するには、Add(IStorageItem) を呼び出します。You can also add the file to the MRU without metadata by calling Add(IStorageItem). MRU に項目を追加すると、項目を取得するときに使われる一意に識別するための文字列であるトークンが返されます。When you add an item to the MRU, the method returns a uniquely identifying string, called a token, which is used to retrieve the item.

ヒント

項目を MRU から取得するにはそのトークンが必要であるため、どこかに保存しておいてください。You'll need the token to retrieve an item from the MRU, so persist it somewhere. アプリ データの詳細については、「アプリケーション データの管理」をご覧ください。For more info about app data, see Managing application data.

トークンを使って MRU から項目を取得するUse a token to retrieve an item from the MRU

取得する項目に最適な取得メソッドを使います。Use the retrieval method most appropriate for the item you want to retrieve.

先ほど追加したファイルを取得する方法は次のとおりです。Here's how to get back the file we just added.

StorageFile retrievedFile = await mru.GetFileAsync(mruToken);

すべてのエントリを反復処理してトークンを取得した後に項目を取得する方法は次のとおりです。Here's how to iterate all the entries to get tokens and then items.

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 内のエントリを反復処理できます。The AccessListEntryView lets you iterate entries in the MRU. これらのエントリは、項目のトークンとメタデータが格納された AccessListEntry 構造体です。These entries are AccessListEntry structures that contain the token and metadata for an item.

空きのない MRU から項目を削除するRemoving items from the MRU when it's full

MRU の上限である 25 項目に達している場合、新しい項目を追加しようとすると、最後にアクセスしてからの経過時間が最も長い項目が自動的に削除されます。When the MRU's 25-item limit is reached and you try to add a new item, the item that was accessed the longest time ago is automatically removed. そのため、新しい項目を追加する前に項目を削除する必要はありません。So, you never need to remove an item before you add a new one.

後でアクセスする一覧Future-access list

アプリには MRU のほか、後でアクセスする一覧もあります。As well as an MRU, your app also has a future-access list. ファイルやフォルダーを選ぶことで、ユーザーはアプリがアクセスできない可能性がある項目にアクセス許可を付与します。By picking files and folders, your user grants your app permission to access items that might not be accessible otherwise. これらの項目を後でアクセスする一覧に追加すると、後にそれらの項目にアプリがアクセスする場合に備えてアクセス許可が保持されます。If you add these items to your future-access list then you'll retain that permission when your app wants to access those items again later. お使いのアプリの、後でアクセスする一覧は、静的な StorageApplicationPermissions.FutureAccessList プロパティから取得する StorageItemAccessList クラスによって表されます。Your app's future-access list is represented by the StorageItemAccessList class, which you obtain from the static StorageApplicationPermissions.FutureAccessList property.

ユーザーが項目を選ぶ際には、MRU のほか、後でアクセスする一覧にも追加することを検討してください。When a user picks an item, consider adding it to your future-access list as well as your MRU.

  • FutureAccessList は最大 1,000 項目を保持できます。The FutureAccessList can hold up to 1000 items. ファイル以外にもフォルダーを保持できるため、大量のフォルダーがあることにご注意ください。Remember: it can hold folders as well as files, so that's a lot of folders.
  • プラットフォームによって FutureAccessList から項目が削除されることはありません。The platform never removes items from the FutureAccessList for you. 項目の数が上限の 1,000 に到達した場合、Remove メソッドで空きを確保するまで項目を追加できません。When you reach the 1000-item limit, you can't add another until you make room with the Remove method.