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 近期访问列表的更多相关文章

  1. Windows Store App 过渡动画

    Windows Store App 过渡动画     在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...

  2. 在桌面程序上和Metro/Modern/Windows store app的交互(相互打开,配置读取)

    这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情 ...

  3. Windows store app[Part 4]:深入WinRT的异步机制

    接上篇Windows store app[Part 3]:认识WinRT的异步机制 WinRT异步机制回顾: IAsyncInfo接口:WinRT下异步功能的核心,该接口提供所有异步操作的基本功能,如 ...

  4. Windows store app[Part 3]:认识WinRT的异步机制

    WinRT异步机制的诞生背景 当编写一个触控应用程序时,执行一个耗时函数,并通知UI更新,我们希望所有的交互过程都可以做出快速的反应.流畅的操作感变的十分重要. 在连接外部程序接口获取数据,操作本地数 ...

  5. 05、Windows Store app 的图片裁切(更新)

    在 Win Phone Silverlight api 中,有一个 PhotoChooserTask 选择器,指定宽.高属性,在选择图片的时候, 可以进行裁切,代码: PhotoChooserTask ...

  6. 01、Windows Store APP 设置页面横竖屏的方法

    在 windows phone store app 中,判断和设置页面横竖屏的方法,与 silverlight 中的 Page 类 不同,不能直接通过 Page.Orientation 进行设置.而是 ...

  7. Windows store app[Part 1]:读取U盘数据

    Windows 8系统下开发App程序,对于.NET程序员来说,需要重新熟悉下类库. 关于WinRT,引用一张网上传的很多的结构图: 图1 针对App的开发,App工作在系统划定的安全沙箱内,所以通过 ...

  8. Windows Store App JavaScript 开发:获取文件和文件夹列表

    在应用程序中有时可能需要获取用户库中的内容,以便执行相关的操作.如果要获取某个用户库中的内容,需要先获取到这个用户库,获得用户库可以通过Windows.Storage命名空间中的KnownFolder ...

  9. Windows Store App 访问应用内部文件

    访问应用程序内部的文件可以使用多种不同的方法,13.1节中已经介绍过相关的方法,除此之外,还可以使用文件的URI地址直接对文件进行检索,这种访问方式需要用到StorageFile类的静态方法GetFi ...

随机推荐

  1. enum使用

    新建一个.h文件 typedef enum { type1 = 1, type2 = 2 };

  2. sql server 中删除表中数据truncate和delete的区别(转载自.net学习网)

    我们都知道truncate table可以用来删除整个表的内容,它与delete后面不跟where条件的效果是一样.但除此之外,我们还清楚它们之间有其它的区别吗?本章我们将一起讨论truncate与d ...

  3. 《30天自制操作系统》14_day_学习笔记

    harib11a--harib11c: 继续测试性能:我们在harib10h中进行了定时链表结构的改进“消除了移位处理”.下面我们设定490个定时器(它们都被设定启动50天才超时)来测试一下改进的效果 ...

  4. sdutoj 2606 Rubik’s cube

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2606 Rubik’s cube Time Li ...

  5. 谨慎使用多线程中的fork

    // Upon successful completion, pthread_atfork() shall return a value of zero; otherwise, an error nu ...

  6. 利用Java进行MySql数据库的导入和导出

    利用Java来进行Mysql数据库的导入和导出的总体思想是通过Java来调用命令窗口执行相应的命令. MySql导出数据库的命令如下: mysqldump -uusername -ppassword  ...

  7. html,移动端代码

    <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale= ...

  8. C#中把Datatable转换为Json的5个代码实例

    一. /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table" ...

  9. 使用 Centos 7 的 systemctl 管理服务

    CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,存系统服务里即:/usr/lib/ ...

  10. Hudson(Jenkins)持续集成插件开发环境搭建

    Hudson持续集成插件开发环境搭建 第一步安装java jdk,至于版本的话推荐1.6以上吧.安装好jdk设置环境变量,确保你在cmd中输入java -version有提示你jdk的版本信息等,也就 ...