尝试在Windows Phone 8上创建目录时出现异常

时间:2014-08-17 04:53:00

标签: windows-phone-8 windows-phone-8.1 windows-phone-8-emulator

当我尝试在我的wp8应用程序中创建一个目录(即快照)时出现错误但是我不明白为什么它在我的模拟器中工作正常并且当我将我的应用程序直接从我的笔记本电脑转移到我的电话但是当它来自wp8商店时,会产生以下错误:

System.UnauthorizedAccessException: Access to the path 'Snapshots\' is denied.

我不知道这是否可行,但我处理文件的所有地方,我都不打扰指定路径而只是一个文件夹,因为我认为它会进入“app path”。情况不是这样吗?

2问题引起的问题:

  1. 为什么它适用于本地应用而不是从商店下载的应用?访问权限是否不同?

  2. 如果我不允许直接在应用程序的文件夹中创建文件(没有提供路径,只有文件名,即data.xml)或子文件夹(仅提供子文件夹+文件名,即快照\测试。 jpg),我应该在哪里存储我的数据(xml,jpg等......)

  3. 感谢。

1 个答案:

答案 0 :(得分:0)

我发现你不应该尝试直接在wp8应用程序的根文件夹中写入数据,因为它是一个"安装文件夹"。我从Microsoft Files and Storage in Windows Phone 8找到了这篇有趣的文章/ pdf。请查看第7页,其中清楚地说明了安装和本地文件夹之间的区别。

这个问题最初是为了弄清楚为什么我的实时图块不会更新而且有很多原因,所以虽然与这个问题无关,但我还是会包含它们,因为它可能会帮助将来的某个人。

  1. 文件夹创建问题:见上文。仍然无法解释为什么当应用程序从PC转移到手机时它可以正常工作但是当从应用程序商店转移时,它并没有。重点是我的方法是错误的,你不应该将文件存储在根文件夹中,即使是在子文件夹中也是如此,因为它不能在这个位置创建。您应该使用隔离存储或数据存储。

  2. 将文件存储在StorageFolder(LocalFolder)中时,文件仍无法更新实时图块。然后我发现这两篇文章明确指出Live Tiles使用的图像应存储在Isolated Storage中,但存储在特定位置,即Shared \ ShellContent

  3. WP8 Tip: Creating Live Tiles with Dynamic Images

    Capturing image from camera and updating live tile

    我应用建议的那一刻,即使用特定路径并使用独立存储,它对我的​​所有问题进行了分类,即创建文件夹,创建文件等...

    请注意,虽然它声明您应该将文件存储在\ Shared \ ShellContent中,但它还强调它可以存储在该文件夹中的任何子文件夹中,所以在我的情况下,我已经有了Shared \ ShellContent \\ Snapshots,它按预期工作。

    同样,如果时间允许,我会再调查一下StorageFolder,因为我希望它可以使用,因为这是推荐使用Microsoft和WP8 / WP8.1进行隔离存储的方法推荐用于WP7。

    如果你遇到类似的问题,我希望能节省你一些时间。