追蹤最近使用的檔案和資料夾

重要 API

將檔案新增至您應用程式最近使用的清單 (MRU),以追蹤使用者經常存取的檔案。 平台會根據上次存取項目的時間排序項目,並在達到清單的 25 個項目限制時移除最舊的項目,以為您管理 MRU。 所有應用程式都有自己的 MRU。

您應用程式的 MRU 會由 StorageItemMostRecentlyUsedList 類別代表,其為您透過靜態 StorageApplicationPermissions.MostRecentlyUsedList 屬性取得。 MRU 項目會儲存為 IStorageItem 物件,因此 StorageFile 物件 (代表檔案) 和 StorageFolder 物件 (代表資料夾) 都可以新增至 MRU。

注意

 如需完整範例,請參閱檔案選擇器範例檔案存取範例

必要條件

將挑選的檔案新增至 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),以便將中繼資料與檔案產生關聯。 設定中繼資料可讓您記錄項目的用途,例如「設定檔圖片」。 您也可以呼叫 Add(IStorageItem),將檔案新增至 MRU 而不使用中繼資料。 將項目新增至 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 移除項目

到達 MRU 的 25 個項目限制且您嘗試新增項目時,系統會自動移除最久之前存取的項目。 因此,在新增項目之前,您永遠不需要移除項目。

未來存取清單

還有 MRU,您的應用程式也有未來存取清單。 藉由挑選檔案和資料夾,您的使用者會授與應用程式權限,以存取若未授與便可能無法存取的項目。 如果您將這些項目新增至未來存取清單,當您的應用程式稍後想要再次存取這些項目時,您將會保留該權限。 您應用程式的未來存取清單會由 StorageItemAccessList 類別代表,其為您透過靜態 StorageApplicationPermissions.FutureAccessList 屬性取得。

當使用者挑選項目時,請考慮將其新增至未來存取清單以及 MRU。

  • FutureAccessList 最多可以保存 1000 個項目。 記住:它可以保存資料夾和檔案,因此有很多資料夾。
  • 平台永遠不會為您移除 FutureAccessList 中的項目。 達到 1000 個項目的限制時,除非使用 Remove 方法騰出空間,否則無法新增其他項目。