我试图创建一个sqlLite数据库。此代码可以工作并创建数据库,并允许我插入和选择。
string dbPath = Path.Combine(
System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal),
"ormdemo.db3");
//dbPath = "/storage/emulated/0/DCIM/ormdemo.db3";
var db = new SQLiteConnection(dbPath);
db.CreateTable<Stock>();
现在返回的dbPath是:
"/data/user/0/MyFirstGPSApp.MyFirstGPSApp/files/ormdemo.db3"
但是当我使用sqlLite Manager尝试打开数据库时,我无法找到文件夹/data/user
该文件夹/data/user
在哪里?
sqlLite可以选择打开“APP”数据库,但是当试图选择MyFirstGPSApp
时需要一个根设备。
sqlLite的起始文件夹是/storage/emulated/0
,并且有一个子文件夹/DCIM
所以我尝试使用我可以看到的文件夹...比如/storage/emulated/0/DCIM/ormdemo.db3
,但new SQLiteConnection(dbPath)
给了我这个错误。
SQLite.SQLiteException:无法打开数据库文件:/storage/emulated/0/DCIM/ormdemo.db3(CannotOpen)
我是否需要特殊的权限才能在/DCIM
文件夹中撰写?
答案 0 :(得分:2)
好的,你的帖子中有三个问题。在回答你的问题之前,我认为有些图片是必要的。
就像@Yogesh Paliyal所说,你需要File Explorer
才能看到它。如果您还想查看它并且您不想根植于设备,请关注我:Visual Studio->Tools->Android->Android Device Monitor->select one simulator from Devices column->File Explorer
。我建议你创建一个Api低于21的模拟器,因为更高也看不到文件。我用19来查看文件。
我认为你应该首先阅读this。
好的,让我们看看你的问题:
应用个人文件夹路径在哪里?
在android中,有两个文件夹:个人/内部文件夹和公共/外部文件夹here is official document。
个人/内部文件夹路径:
/ data / data / package name / shared_prefs:SharedPreferences
/ data / data / package name / databases:Sqlite
/ data / data / package name / files:Api:getFilesDir()
/ data / data / package name / cache:Api:getCacheDir()
/ storage / sdcard / Android / data / package name / files:Api:getExternalFilesDir()
/ storage / sdcard / Android / data / package name / cache:Api:getExternalCacheDir()
公共/外部文件夹路径:
/storage/sdcard
文件夹中,只有Android
文件夹是个人/内部文件夹,因此/storage/sdcard/DCIM
,/storage/sdcard/Music
等所有文件夹都是公共/外部文件夹:{{ 3}} 该文件夹/数据/用户在哪里?
从P1开始,您可以看到->/data/data/
落后于/data/user/0
,因此文件夹/data/user/0/MyFirstGPSApp.MyFirstGPSApp/files/ormdemo.db3
实际上是/data/data/MyFirstGPSApp.MyFirstGPSApp/files/ormdemo.db3
。
我需要特殊的permision来写入/ DCIM文件夹吗?
个人/内部文件夹不需要权限,公共/外部文件夹需要权限。
在/storage/sdcard
文件夹中,只有Android
文件夹是个人/内部文件夹,因此您需要获得权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
或<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
或两者兼而有之。
答案 1 :(得分:0)
如果没有root权限,您无法直接从移动设备上查看。 尝试使用Android Studio的文件浏览器功能。