共用方式為


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

重要的應用程式介面

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

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

備註

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

先決條件

  • 瞭解通用 Windows 平臺 (UWP) app 的異步程式設計

    您可以瞭解如何在 C# 或 Visual Basic 撰寫異步應用程式,請參閱在 C# 或 Visual Basic 中呼叫異步 API 。 若要瞭解如何在 C++ 中撰寫異步應用程式,請參閱 C++中的 異步程序設計。

  • 對於位置的訪問權限

    請參閱 檔案存取許可權

  • 使用選擇器開啟檔案和資料夾

    挑選的檔案通常是使用者一次又一次返回的相同檔案。

將挑選的檔案新增至 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)之外,您的應用程式也有未來的存取清單。 藉由挑選檔案和資料夾,您的使用者授予應用程式許可權,以存取原本可能無法存取的項目。 如果您將這些專案新增至未來的存取清單,當您的應用程式稍後想要再次存取這些專案時,您將會保留該許可權。 您從靜態 StorageApplicationPermissions.FutureAccessList 屬性取得的 StorageItemAccessList 類別代表應用程式的未來存取清單。

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

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