/ sdcard / emulated / 0和/ sdcard之间的差异

时间:2013-11-16 10:43:29

标签: android directory android-external-storage

我很生气,因为一个奇怪的问题。如果我在我的代码中创建一个文件夹

directory_path = Environment.getExternalStorageDirectory()
                + "/" + context.getResources().getString(R.string.app_name);

directory = new File(directory_path);
if (!directory.exists()) {
    directory.mkdirs();
}

在/ sdcard /中创建一个新文件夹。如果我尝试在logcat directory_path变量上打印,则路径不同:/ storage / emulated / 0 / 如果我去那条路,我发现另一个文件夹与/ sdcard /上创建的文件夹名称相同。这对我来说是一个问题,因为当我尝试将一些数据写入该文件夹时,everithing进入/ storage / emulated / 0中的那个,而另一个(我想要使用的文件夹)保持为空。 为什么呢?

2 个答案:

答案 0 :(得分:4)

您是否尝试过回读数据? / storage / emulated / 0 /是JB中引入的新路径,用于支持平板电脑上的多个用户。但只要您使用Environment.getExternalStorageDirectory()访问外部文件,它们真正驻留在哪里并不重要。

以下是其他一些信息:https://android.stackexchange.com/questions/35541/why-did-sdcard-turn-into-sdcard-0-with-4-2

答案 1 :(得分:0)

  

/ storage / emulated / 0 /:据我所知,这是指“模拟的   MMC“(”所有者部分“)。通常这是内部的。”0“代表   对于这里的用户,“0”是第一个用户aka设备所有者。如果你   创建其他用户,这个数字将逐渐增加。

     

/ storage / emulated / legacy /和之前一样,但是指向了部分   当前工作的用户(对于所有者,这将是一个符号链接

     

/存储/模拟/ 0 /)。所以这条道路应该把每个用户带到他的身边   “份”。

     

/ sdcard /:根据Shywim的评论,这是一个符号链接......

     

/ mnt / sdcard(Android< 4.0)

     

/ storage / sdcard0(Android 4.0 +)

有关详细信息,请访问stackexchange