0

我一直在使用 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 数据库保存到文档文件夹吗?

提前致谢。

4

1 回答 1

0

KnownFolders.DocumentsLibrary没有路径,因为它是虚拟位置。请查看此答案以获取更多详细信息。这可能导致无法在那里打开 SQLite 数据库,至少使用sqlite-net库中可用的 API。

此外,在您的 Windows 应用商店应用程序中使用对文档库的访问之前,请记住,要将具有此功能的应用程序发布到应用商店,您需要有一个公司帐户。对于个人账户,此类申请将被拒绝。

于 2013-03-28T06:38:22.807 回答