WinRT:关闭后再次打开以前打开的文件

时间:2013-11-09 09:11:47

标签: c# file windows-8 windows-runtime windows-8.1

我有一个简单的Windows 8.1应用程序,我目前正在扩展以包含选项卡。我还在为这些选项卡添加自动保存功能,这样当用户“关闭”应用程序时,它会将文件内容和路径(如果是现有文件)写入localstorage中的txt文件。

当文件未保存时,这很有用。用户关闭应用程序,重新打开后,所有选项卡都会再次显示,并进行最新更改。

我遇到的问题是文件已经保存。我将路径存储在txt中,所以我想我只是在打开应用程序时再次打开文件,但问题是我不允许打开系统上的任何文件。用户可能已经从他的C:驱动器中打开了一个我无法读取的文件(例如,如here所述)。

关于如何解决这个问题的任何想法。我担心我想做的事情是不可能的。

如果需要,我可以显示一些有关保存自动保存文件的代码,但我认为我无法显示与该问题相关的任何内容。

2 个答案:

答案 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中复制文件时,它应该与第一个不同。在这里,你必须提出自己的规则。