2

在 Metro 中,如下代码会抛出异常

String fileName = @"C:\Test\dd\ccc.jpg";
StorageFile file = await StorageFile.GetFileFromPathAsync(fileName);

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

有人知道如何读取任意文件路径中的文件吗?这在 Metro 风格应用中是否可行。

4

1 回答 1

5

不可能。您可以访问库 - 图片、文档、视频 - 如果用户将该文件夹放入其中一个库中(使用桌面端的 Windows 资源管理器),那么一切就绪。您甚至可以编写一个桌面 exe,将文件夹放入库中,但您不能自己启动该 exe,或者确保用户没有手动更改库。

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

于 2011-10-24T12:09:38.140 回答