【发布时间】:2014-05-02 22:05:19
【问题描述】:
我正在使用 WinJS 构建一个商店应用程序,我需要创建一个结构,其中包含一些与用户树文件夹相关的信息(每个驱动器,不仅是 C:),有没有办法从每个驱动器获取整个文件夹结构不使用文件/文件夹选择器?
【问题讨论】:
标签: windows-store-apps windows-8.1 winjs
我正在使用 WinJS 构建一个商店应用程序,我需要创建一个结构,其中包含一些与用户树文件夹相关的信息(每个驱动器,不仅是 C:),有没有办法从每个驱动器获取整个文件夹结构不使用文件/文件夹选择器?
【问题讨论】:
标签: windows-store-apps windows-8.1 winjs
不,按照设计,Windows 应用商店应用在应用容器内运行,该容器限制了它们在未经用户同意的情况下可以执行的操作。无需进一步同意即可公开访问的唯一存储区域是应用的包位置(只读,请参阅[Windows.ApplicationModel.Package.Current.installedLocation][1])及其应用数据文件夹(请参阅Windows.Storage.ApplicationData)。
如果应用在其清单(图片、视频和音乐)中声明了库访问权限,则会在应用商店的应用页面上注明这些内容,以便安装应用的行为相当于用户同意。还有一个类似的 RemovableStorage 库,但您必须声明特定的文件类型。
如果应用在其清单中注册了文件类型关联,并且用户通过文件启动应用,则授予访问权限。
除此之外,您访问任何其他存储位置的方式是通过选择器。但是,如果您让用户选择一次,您可以通过将 StorageFolder 保存到 Windows.Storage.AccessCache API 来保存该同意,这样您就可以在未来的应用会话中再次打开该文件夹,而无需重新获得同意。
有关这方面的所有详细信息,请参阅我的免费电子书Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition 的第 11 章“状态的故事,第 2 部分:用户数据”的第一部分。
【讨论】: