有一个针对xamarin代码创建的DBfile,该文件用于Android sqlite数据库的本机android:
public static string DBFile = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal),"Test.db");
public static void InitializeLocalDB()
{
if (!File.Exists(DBFile))
{
using (var connection = new SQLiteConnection(DBFile))
{
connection.CreateTable<Model.TestItem>();
}
}
模型也已编码。
型号
namespace Test.Model
{
public class Test
{
[PrimaryKey]
[MaxLength(10)]
public string Test { get; set; }
}
}
当我尝试使用文件管理器但找不到文件时,我是否可以知道从android手机中的上述代码创建的数据库文件的默认位置?
答案 0 :(得分:1)
文件“ test.db”将位于应用程序的沙箱中,因此通常无法访问(除非您为模拟器使用了root用户的设备或非生产映像)
在Android上,此:
System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)
映射到(当然要调整您的软件包名称):
/data/user/0/com.sushihangover.someApp/files/Test.db
答案 1 :(得分:0)
/data/data/<Your-Application-Package-Name>/databases/<your-database-name>
如他们在this post中所说。
在物理设备(而不是仿真器)中,问题在于,有时取决于电话,您无法访问该文件夹。 例如,我有一个普通的Android平板电脑,没有root。如果该应用程序处于Debug(未发布)状态,则可以从Android Studio设备资源管理器访问该文件夹。
有时候无法以这种方式访问它,例如在某些三星手机(它说run-as package is unknown
)中,所以我使用adb和this other post中描述的方法。
编辑:抱歉,我没有意识到您在询问Xamarin。无论如何,我会从Android Studio设备文件资源管理器中保留图像,以防万一它可以帮助您。
希望有帮助。