我现在已经找了差不多一天了,这件事让我发疯了。
我正在尝试打开与SQLite DB的连接,我从windows推送到设备。
数据库现在位于此路径中:
电话/ Android设备/数据/ MyApp.Droid /文件/ MyDB.db3
可以在没有' Phone / Android'的情况下阅读我想。
当我尝试连接数据库时,我似乎无法找到路径。
这是我检索路径和创建连接的代码。
public SQLite.SQLiteConnection GetConnection()
{
var sqliteFile = "MyDB.db3";
var dataPath = global::Android.OS.Environment.DataDirectory.AbsolutePath;
var dataPathExtension = @"MyApp.Droid/files";
var destination = Path.Combine(dataPath, dataPathExtension, sqliteFile);
//this outputs the following: /data/MyApp.Droid/files/MyDB.db3
//When I check my phone this is exactly when I can find the file.
return new SQLite.SQliteConnection(destination);
//It can't find the path/file.
}
数据库需要位于我可以从Windows访问的位置,而无需使设备生根。
任何人都可以向我解释为什么它找不到路径/文件,如果可能的话告诉我如何阅读该位置?
注意:我无法访问任何' Environment.SpecialFolder'从windows看起来这给了我一条路径:data / user / 0 / MyApp.Droid / files /
此致,
答案 0 :(得分:1)
我使用此实现:
public SQLiteAsyncConnection GetConnection()
{
var fileName = "DatabaseName.db3";
var documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var path = Path.Combine(documentsPath, fileName);
var connection = new SQLiteAsyncConnection(path);
return connection;
}
然后,我将使用.db3
和Android Device Monitor
内部抓取File Explorer
文件。然后,您可以使用http://sqlitebrowser.org/或其他支持SQLite的浏览器打开.db3
文件。 请注意:在Emulator
上最简单,因为从物理设备中提取文件可能会非常麻烦而没有root。