我一直在使用XAML和C#编写Windows 8商店应用程序,目标设备是Windows Surface平板电脑。
在我的应用程序中,我使用SQLite数据库。
要创建/加载数据库,我使用以下代码:
DBPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "MyDatabase.sqlite");
但是我想将数据库存储在Documents文件夹中,所以我尝试使用以下代码行替换上面的代码:
DBPath = Path.Combine(Windows.Storage.KnownFolders.DocumentsLibrary.Path, "MyDatabase.sqlite");
当我尝试这个时,我收到以下错误:
WinRT information: Access to the specified location (DocumentsLibrary) requires a capability to be declared in the manifest.
所以我打开Package.appxmanifest并在功能下选择Documents Library,在声明选项卡下我添加了一个文件类型关联。然后在属性下我输入了 名称框中的sqlite和文件类型框中的.sqlite。我在Package.appxmanifest屏幕上没有输入任何其他信息。
现在,当我运行应用程序时,收到以下错误:
Could not open database file: MyDatabase.sqlite (CannotOpen)
当我检查Windows.Storage.KnownFolders.DocumentsLibrary.Path时,它等于“”。我希望这里有完整的位置路径。
任何人都可以帮忙,有没有人将SQLite数据库保存到文档文件夹?
提前致谢。
答案 0 :(得分:0)
KnownFolders.DocumentsLibrary
没有路径,因为它是虚拟位置。有关详细信息,请查看this answer。这可能导致无法在那里打开SQLite数据库,至少使用sqlite-net库中提供的API。
在使用Windows应用商店应用中的文档库之前,请注意,要将具有此功能的应用发布到商店need to have a company account。对于个人帐户,此类申请将被拒绝。