【问题标题】:Windows 8 metro application access arbitrary file pathWindows 8 Metro 应用程序访问任意文件路径
【发布时间】:2011-10-24 10:29:23
【问题描述】:

在metro中,如下代码将throw exception:

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

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

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

【问题讨论】:

    标签: file-io windows-8 microsoft-metro


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      相关资源
      最近更新 更多