在Xamarin Android中存储SQLite数据库的路径
本文关键字:数据库 路径 SQLite 存储 Xamarin Android | 更新日期: 2023-09-27 18:24:05
我正在尝试将本地SQLite数据库存储在设备的内部存储中。当我使用模拟器时,这个:
static string dbName = "totems.sqlite";
string dbPath = Path.Combine (Android.OS.Environment.ExternalStorageDirectory.ToString (), dbName);
工作良好。但当我尝试在Nexus 5上调试时,它没有工作,因为它没有外部存储。我搜索了它的存储位置,这样它也可以在我的Nexus上运行。我将其替换为:
static string dbName = "totems.sqlite";
string dbPath = Path.Combine ("/data/data/com.companyname.totem/databases/", dbName);
但现在它在我的Nexus 5上不起作用,在我的模拟器上也不起作用。它说找不到路。
我做错了什么?
提前谢谢。
我知道这是一个旧的线程,但旧的答案有一个拼写错误。工作语法应该是:
string path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "DatabaseName.txt");
Im使用以下代码:
string path = Path.Combine(System.Enviroment.GetFolderPath(System.Enviroment.SpecialFolder.Personal), "data.txt");
我认为应该像您想要一样写入内部存储
来自docs.com
LocalApplicationData
:用作公用的目录用于由当前用户使用的应用程序特定数据的存储库,非漫游用户。
Personal
:用作的公共存储库的目录文件。此成员相当于MyDocuments。
从这个我使用:
var db_directory = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData),"databases"))
var db_path = Path.Combine(db_directory,"data.db");
同样来自此示例(XF)
docs.com xamarin教程
public static Database Database
{
get
{
if (database == null)
{
database = new Database(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "people.db3"));
}
return database;
}
}