0

我正在使用 PhoneGap-Plugin 在 Windows 商店应用程序中写入文件。我找不到在安装应用程序的“沙盒”之外保存文件的方法。

例子:

Windows.Storage.StorageFolder.getFolderFromPathAsync("C:\\my\local\folder\test.html").then(...

我在这个线程中发现了一个令人困惑的评论:http: //social.msdn.microsoft.com/Forums/windowsapps/en-US/d94f271e-50ee-436b-8ba2-630ea6239f8d/storagefolder-from-absolute-path

我可能是错的,但 Metro 的沙盒仅允许您访问用户通过文件选择器选择的文件。

这是真的?它适合我的经验,因为它适用于保存选择器中的文件。

4

1 回答 1

1

默认情况下,应用程序可以以编程方式访问的唯一区域是 (a) 您的本地、临时和漫游应用程序数据文件夹,以及 (b) 您已在清单中为其声明功能的任何库。

对于其他任何事情,您必须首先通过文件选择器获取 StorageFolder 或 StorageFile 对象。文件选择器的使用是获得用户同意访问该文件或文件夹的原因。

如果您以这种方式获得对文件或文件夹的访问权限,那么您应该通过 Windows.Storage.AccessCache API 保留对未来会话的访问权限(对于最近使用的列表等)。

尝试访问其他任何内容(例如绝对文件路径)将给出拒绝访问异常。您在上面显示的代码将执行此操作 - 如果您使用文件选择器,您将使用 StorageFile API 或通过选择器选择的文件夹上的相对路径。

静态get[文件| Folder]FromPathAsync 方法仅适用于您具有编程访问权限的那些路径名,即 appdata 和库路径。

于 2013-08-19T21:55:48.100 回答