標籤:
Windows 8系統在系統管理使用者的檔案時,會將使用者近期訪問的檔案添加到對應應用的近期訪問列表中,所有的Windows市集應用都有各自的近期訪問列表,根據檔案的上一次訪問時間,可以在列表中對檔案進行排序,並在列表中的訪問項數量超過25個時刪除最舊的訪問項。
在近期訪問列表(MostRecentlyUsedList,以下簡稱為MRU列表)中儲存的是實現了IStorageItem介面的類的對象,因此表示檔案的StorageFile類的對象和表示檔案夾的StorageFolder類的對象都可以添加到MRU列表中。
如果要將近期訪問項添加到MRU列表中,需要首先通過StorageApplicationPermissions類的MostRecentlyUsedList屬性獲得MRU列表,然後以需要添加到列表中的儲存項和與之對應的可選中繼資料為參數調用Add方法來實現,需要添加的儲存項指的就是StorageFile類的對象或StorageFolder類的對象,中繼資料為字串類型,用於對列表中的儲存項進行描述。範例程式碼如下所示:
String mruToken = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.Add(pickedFile, "我的圖片");
代碼假定已經通過上面介紹的檔案選擇器選擇了一張圖片,並獲得了代表這張圖片的pickedFile對象,然後調用Add方法將pickedFile對象添加到MRU列表中,可以看到,為其指定的中繼資料為“我的圖片”。
將檔案添加到MRU列表之後,Add方法會返回一個與此清單項目相對應的字串標記,以便用來唯一地標識這個清單項目。不僅如此,由於這個標記是與清單項目一一對應的,所以還可以使用這個標記對MRU列表進行檢索,並獲得其中儲存的檔案或檔案夾。以下範例程式碼通過上面獲得的標記mruToken獲得與之對應的檔案。
StorageFile retrievedFile = await Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.GetFileAsync(mruToken);
如果想要一次性獲得MRU列表中的所有清單項目,可以使用StorageItemMostRecentlyUsedList類的Entries屬性,獲得之後還可以使用Token屬性分別得到每一個清單項目的標記,進而通過標記獲得與之對應的檔案或檔案夾,範例程式碼如下所示:
AccessListEntryView mruEntries = StorageApplicationPermissions.MostRecentlyUsedList.Entries;
if (mruEntries.Count > 0)
{
foreach (AccessListEntry entry in mruEntries)
{
//擷取令牌
string token = entry.Token;
//TODO:擷取檔案或檔案夾
var listItem = StorageApplicationPermissions.MostRecentlyUsedList.GetItemAsync(token);
}
}
else
{
// 對空的MRU列表的處理
}
Windows Store App 近期訪問列表