Windows 8 metro应用程序访问任意文件路径



在metro中,下面的代码将抛出异常:

String fileName = @"C:Testddccc.jpg";
StorageFile file = await StorageFile.GetFileFromPathAsync(fileName);

然而,即使我检查了功能中的所有内容,也添加了文件选择器并且允许所有文件类型。我仍然不能访问这个文件,同样的异常将被抛出。

有人知道如何读取任意文件路径中的文件吗?

不可能。你可以进入图库——图片、文档、视频——如果用户把文件夹放到其中一个图库中(使用桌面端的Windows资源管理器),一切就都搞定了。你甚至可以编写一个桌面exe,将文件夹放入库中,但你不能自己启动该exe,也不能确保用户没有手动更改库。

查找SHCreateItemInKnownFolder作为库工作的shell api的起点。我还没有尝试从Metro端调用这些api;你可以看看他们是否有帮助,但我打赌他们不会有空。如果你不喜欢COM与shell API的互操作,你可以查看Windows API代码包的源代码——我不想把它和Metro应用捆绑在一起,但你可以把它的一部分复制到你的应用程序中。

最新更新