【发布时间】:2012-08-31 18:27:13
【问题描述】:
我使用“Sqlite for Windows Runtime”和 sqlite-net(正如 http://timheuer.com/blog/archive/2012/08/07/updated-how-to-using-sqlite-from-windows-store-apps.aspx 中所述)来开发 Windows 8 Metro-App,只是 .如果我想在 Program-Directory 中打开一个数据库也没问题:
var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.sqlite");
using (var db = new SQLite.SQLiteConnection(dbPath)) {
...
}
但是当我想使用这样的外部路径时:
var dbPath = "C:\\Users\\xxxxxx\\db.sqlite";
然后出现“无法打开数据库文件”错误。为什么?这里我使用的是 C#,通常我使用 C++,但是对于这个问题我相信它并不重要;)
【问题讨论】:
-
为什么你会选择使用外部路径?我的建议是使用 Visual Studio 来验证您实际尝试使用的路径是否正确。这表明您的研究很少,这可以在您花费 5 分钟调试代码后轻松解决。
-
您是否可以从资源管理器访问此路径?您只能访问当前用户的目录...作为“用户相关”应用程序。
-
这段代码使用
Windows.Storage.ApplicationData.Current.LocalFolder.Path是有原因的,因为这是 Metro 应用程序可以实际访问的少数几个位置之一。 -
如果我想将数据库保存在 Dropbox-Folder 中以便自动同步,例如,该怎么办?这不可能?
-
@Berschi 您的 Dropbox 文件夹位于何处?如果您的保管箱是我在下面列出的位置之一,那么您可以在那里保存,否则您可以让用户使用 FileSavePicker 选择要保存的位置。 msdn.microsoft.com/en-us/library/windows/apps/…
标签: c# c++ sqlite windows-8 microsoft-metro