我有一个简单的Windows 8.1应用程序,我目前正在扩展以包含选项卡。我还在为这些选项卡添加自动保存功能,这样当用户“关闭”应用程序时,它会将文件内容和路径(如果是现有文件)写入localstorage中的txt文件。
当文件未保存时,这很有用。用户关闭应用程序,重新打开后,所有选项卡都会再次显示,并进行最新更改。
我遇到的问题是文件已经保存。我将路径存储在txt中,所以我想我只是在打开应用程序时再次打开文件,但问题是我不允许打开系统上的任何文件。用户可能已经从他的C:驱动器中打开了一个我无法读取的文件(例如,如here所述)。
关于如何解决这个问题的任何想法。我担心我想做的事情是不可能的。
如果需要,我可以显示一些有关保存自动保存文件的代码,但我认为我无法显示与该问题相关的任何内容。
答案 0 :(得分:3)
正如Vasile所说,一旦应用程序关闭,您就无法访问沙盒之外的StorageFile。
但是,WinRT确实提供了StorageApplicationPermissions类,您可以将这些权限存储到文件中。然后,您可以存储令牌以便随后启动该应用程序。
答案 1 :(得分:1)
这导致应用程序被沙箱化,无法访问除Local Storage
之外的其他存储区域,除非您通过Open选择器涉及用户交互。
假设您将文件保存在C:\
上。另外,将其保存在应用的Local Storage
上。下次加载应用程序时,将在选项卡中显示Local Storage
中的文本文件 - 进行编辑,将其保存在PC中的某个位置并覆盖LocalStorage
中的文件。这样,您使用的文件实际上是本地存储中的文件。
你必须要小心这些命名。如果您将SampleFile.txt
保存在C:\
上,然后又创建另一个名为SampleFile.txt
的{{1}}但D:\
,那么当您在 LocalStorage
中复制文件时,它应该与第一个不同。在这里,你必须提出自己的规则。