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

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

问题描述:

我正在使用Windows 8 Developer Preview。我希望开发一个读取XML文件的应用程序。可能吗?当我试图使用XDocument.Load(string uri)时,它抛出一个拒绝访问异常,并且没有FileStream这样的类。我知道Metro风格的应用程序基于Silverlight,它无法访问文件系统,但它实际上是一个桌面应用程序,所以我无法读取文件?有什么解决方法吗?我对silverlight很新,所以也许我只是不知道方式?在metrostyle应用程序中读取XML文件?可能?

+0

Metro风格的应用程序决不基于Silverlight。我是否正确地假设您使用的是.Net语言之一? – svick

+0

是的,我使用xaml + c# – TrN

+0

还有另一个问题......为什么我无法访问KnownFolder.DocumentsLibrary?抛出UnauthorizedException;/ – TrN

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

报价从Access to user resources using the Windows Runtime

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

护理应该在声明 此功能时,应考虑,因为用户可能包括各种信息 他们的移动存储设备,并期望从应用程序的有效理由 。

或者,如果应用程序不需要 完整程序访问权限,则可以使用文件选取器访问可移动存储设备上的特定文件 。

+2

只需双击Package.appxmanifest文件,打开声明选项卡并从下拉菜单中添加文件选取器或文件类型关联(对于它们的正确配置)。 –

阅读答案由Ari Polsky为this question at MSDN

基本上,要访问文件,您需要权限才能这样做。要获得该权限,用户必须通过使用其中一个提供的选取器来选择文件夹中的文件。 另一种选择是声明您想要访问清单中的某个文件夹。但是这只适用于“图书馆”位置。