1. 内部存储,外部存储, SD卡, TF卡的区别
这张图已经非常清楚说明了它们的关系及名称,不过我们现在只需关心Android4.4 以上即可,Android4.4 以下系统估计没人用了吧。这里再说下每个部分对应手机上的目录。
- 外部存储:
/mnt
/storage/emulated
- 内部存储就是
除了外部存储剩下的就是内部存储,当然包括/data
目录 - SD卡:外部存储和外置 SD卡均称为 SD卡
- TF 卡:TF卡就是外置 SD卡
2. /mnt/sdcard, /sdcard , /storage/sdcard , /storage/emulated/0 之间关系
在 Android 4.4 以上系统通过getExternalStorageDirectory
返回路径为/storage/emulated/0
,对于标题中其他路径都是该路径的软链接,为什么呢?主要还是历史原因,以前由于一些原因外置存储是在其他目录上的,为了考虑兼容性,故现在系统采用将其他目录连接在最新采用的/storage/emulated/0
目录上。
3. 如何访问扩展SD卡?
扩展SD卡及U盘等可作为外部存储设备均为挂载设备,可以在/mnt
目录下找到,在Android8.1 上,插入 SD 后目录如下,本人经搜索发现只有该处访问路径。
/mnt/media_rw
访问外部存储代码
File[] files;
files = getExternalFilesDirs(Environment.MEDIA_MOUNTED);
for(File file:files){
}
}
参考