在metrostyle应用程序中读取XML文件?可能?

TrN*_*TrN 3 file-io microsoft-metro windows-8

我正在使用Windows 8开发人员预览版.我希望开发一个读取XML文件的应用程序.可能吗?当我试图使用XDocument.Load(string uri)它时,抛出一个访问被拒绝的异常并且没有这样的类FileStream.我知道metro风格的应用程序基于Silverlight,它无法访问文件系统,但它实际上是一个桌面应用程序,所以我不能读取文件?有没有解决方法?我对银光很新,所以也许我不知道怎么回事?

svi*_*ick 5

在MSDN上阅读Ari Polsky给这个问题的答案.

基本上,要访问文件,您需要获得许可才能访问该文件.要获得该权限,用户必须通过使用提供的选择器之一选择其所在文件夹文件来执行此操作.另一种选择是声明您要访问清单中的某个文件夹.但这仅适用于"图书馆"位置.


Rom*_*iko 5

每个Metro应用程序都是沙盒.您需要指定从文档库或可移动存储中读取文件的功能,并将特定类型与程序包清单相关联.或者,您可以使用文件选择器,以便用户专门授予您访问某些文件的权限.

使用Windows运行时Access访问用户资源引用:

removableStorage功能提供对可移动存储上的文件的编程访问,例如USB密钥和外部硬盘驱动器,过滤到包清单中声明的​​文件类型关联.例如,如果PDF阅读器应用程序声明了.pdf文件类型关联,则它可以在可移动存储设备上打开.pdf文件,但不能打开其他类型的文件.

在声明此功能时应小心,因为用户可能在其可移动存储设备中包含各种信息,并从应用程序中寻找有效的理由.

或者,如果应用程序不需要完全编程访问,则可以使用文件选择器访问可移动存储设备上的特定文件.

  • 只需双击Package.appxmanifest文件,打开声明选项卡,然后从下拉列表中添加文件选择器或文件类型关联(适当的配置). (2认同)