Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我的sqlite数据库在哪里?_Android_Sqlite_Xamarin.forms - Fatal编程技术网

Android 我的sqlite数据库在哪里?

Android 我的sqlite数据库在哪里?,android,sqlite,xamarin.forms,Android,Sqlite,Xamarin.forms,我有一个用Xamarin.Forms编写的应用程序,可以在我的Android设备中创建一个新的sqlite db。 我使用以下代码: string dbPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal); database = new SQLiteAsyncConnection(dbPath); database.CreateTableAsync<TodoItem>().Wait(); strin

我有一个用Xamarin.Forms编写的应用程序,可以在我的Android设备中创建一个新的sqlite db。 我使用以下代码:

string dbPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
database = new SQLiteAsyncConnection(dbPath);
database.CreateTableAsync<TodoItem>().Wait();
string dbPath=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
数据库=新的SQLiteAsyncConnection(dbPath);
database.CreateTableAsync().Wait();
数据库创建正确,但在指定路径上找不到它(在本例中为“/data/data/Todo.Android/files/TodoSQLite.db3”)


我使用文件探索搜索,但什么也没有。那么,这个文件在哪里?

您是否在根目录中查找该文件

第一个数据文件夹应该位于根目录(/)中,包含诸如dev等和system等文件夹。您可能已经在手机存储目录(如/storage/emulated/0)中搜索了该文件夹。据我所知,您只能使用根手机访问根目录

如果要获取文件:
您可以尝试使用不同的文件资源管理器,但对于非根手机,应用程序数据通常仍然是隐藏的


或者使用计算机。

是否在根目录中查找该文件

第一个数据文件夹应该位于根目录(/)中,包含诸如dev等和system等文件夹。您可能已经在手机存储目录(如/storage/emulated/0)中搜索了该文件夹。据我所知,您只能使用根手机访问根目录

如果要获取文件:
您可以尝试使用不同的文件资源管理器,但对于非根手机,应用程序数据通常仍然是隐藏的

或者使用你的电脑

数据库创建正确,但在指定路径上找不到它(在本例中为“/data/data/Todo.Android/files/TodoSQLite.db3”)

仅从您的代码中,我没有看到您创建或成功连接到
TodoSQLite.db3
文件,您只找到了数据库应该放置的文件夹路径

我不知道您认为数据库是如何正确创建的,但是如果您使用
Environment.SpecialFolder.Personal
,那么您尝试访问的路径是正确的,但是由于您找不到数据库文件,我只能想象您实际上没有正确创建数据库

例如,您可以这样编写代码来创建文件名为“TodoSQLite.db3”的数据库:

string dbPath=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
数据库=新的SQLiteAsyncConnection(System.IO.Path.Combine(dbPath,“TodoSQLite.db3”);
database.CreateTableAsync();
数据库创建正确,但在指定路径上找不到它(在本例中为“/data/data/Todo.Android/files/TodoSQLite.db3”)

仅从您的代码中,我没有看到您创建或成功连接到
TodoSQLite.db3
文件,您只找到了数据库应该放置的文件夹路径

我不知道您认为数据库是如何正确创建的,但是如果您使用
Environment.SpecialFolder.Personal
,那么您尝试访问的路径是正确的,但是由于您找不到数据库文件,我只能想象您实际上没有正确创建数据库

例如,您可以这样编写代码来创建文件名为“TodoSQLite.db3”的数据库:

string dbPath=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
数据库=新的SQLiteAsyncConnection(System.IO.Path.Combine(dbPath,“TodoSQLite.db3”);
database.CreateTableAsync();

似乎重复了。似乎是重复的@KronosInformatica,尝试使用DDMS查看您的文件。通过文件资源管理器,我无法看到“/data/data”文件夹。在互联网上多次搜索后,我发现我无权访问此文件夹。相反,如果我尝试在另一个文件夹(如“/storage/sdcard0”)中创建文件,我可以看到它。@KronosInformatica,正如我所说,您可以使用DDMS检查文件夹
Personal
下的文件,如果您想让您的用户看到此文件,您可以更改文件路径,这样就可以了。基本上,我的答案是你没有在路径下创建该文件,明白吗?@KronosInformatica,尝试使用DDMS查看你的文件。通过文件浏览器,我看不到“/data/data”文件夹。在互联网上多次搜索后,我发现我无权访问此文件夹。相反,如果我尝试在另一个文件夹(如“/storage/sdcard0”)中创建文件,我可以看到它。@KronosInformatica,正如我所说,您可以使用DDMS检查文件夹
Personal
下的文件,如果您想让您的用户看到此文件,您可以更改文件路径,这样就可以了。基本上我的答案是你没有在路径下创建那个文件,明白吗?
string dbPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
database = new SQLiteAsyncConnection(System.IO.Path.Combine (dbPath, "TodoSQLite.db3"));
database.CreateTableAsync<TodoItem>();