我正在使用WinJS构建商店应用程序,我需要创建一个结构,其中包含一些与用户的树文件夹相关的信息(每个驱动器,不仅仅是C :),有什么方法可以获得不使用File / FolderPicker的每个驱动器的整个文件夹结构?
答案 0 :(得分:0)
不,按照设计,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部分:用户数据”的第一部分。