应用程序个人文件夹路径在哪里

时间:2018-01-10 15:41:16

标签: android visual-studio sqlite permissions xamarin.android

我试图创建一个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文件夹中撰写?

2 个答案:

答案 0 :(得分:2)

好的,你的帖子中有三个问题。在回答你的问题之前,我认为有些图片是必要的。

P1: enter image description here

P2: enter image description here

就像@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

个人/内部文件夹路径:

公共/外部文件夹路径:

  • /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的文件浏览器功能。