【问题标题】:WinJS - How to access whole folder tree without FolderPickerWinJS - 如何在没有 FolderPicker 的情况下访问整个文件夹树
【发布时间】:2014-05-02 22:05:19
【问题描述】:

我正在使用 WinJS 构建一个商店应用程序,我需要创建一个结构,其中包含一些与用户树文件夹相关的信息(每个驱动器,不仅是 C:),有没有办法从每个驱动器获取整个文件夹结构不使用文件/文件夹选择器?

【问题讨论】:

    标签: windows-store-apps windows-8.1 winjs


    【解决方案1】:

    不,按照设计,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 部分:用户数据”的第一部分。

    【讨论】:

    • 谢谢克雷格,非常详细的回答。 Windows.Storage.AccessCache 似乎可以满足我的需要,所以 Pickers 就是这样。还要感谢您提供指向您的书的链接,我肯定会/需要阅读它。干杯!
    猜你喜欢
    • 1970-01-01
    • 2015-02-09
    • 2012-07-04
    • 2014-12-30
    • 1970-01-01
    • 2016-05-10
    • 2012-08-21
    • 2012-07-01
    • 2012-07-25
    相关资源
    最近更新 更多