【问题标题】:PhoneGap file write to absolute path in windows store / windows 8 appsPhoneGap 文件写入 Windows 商店/Windows 8 应用程序中的绝对路径
【发布时间】:2013-08-18 20:39:00
【问题描述】:

我正在使用 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 的沙盒仅允许您访问已选择的文件, 由用户通过文件选择器。

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

【问题讨论】:

    标签: cordova windows-store-apps filewriter


    【解决方案1】:

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

    除此之外,您必须首先通过文件选择器获取 StorageFolder 或 StorageFile 对象。文件选择器的使用是获得用户同意访问该文件或文件夹的原因。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 2012-09-22
      相关资源
      最近更新 更多