我们大多数情况下操纵的是外部存储,而外部存储都是通过挂载到根目录来让系统对外部存储进行链接的,下面一小队就是对挂在的理解
首先,不同机型的挂载路径可能会有些许的差别,请记住,不同的版本,不同的厂商,不同的机型可能会有些许差别,要自己去兼容。
下面是常见的几种,但殊途同归,但这样会给我们在获取内外置sd卡上造成很大的麻烦,很无语,至于怎样去获取内外置存储卡请移步。。
- /mnt/sdcard0, /mnt/sdcard1, /mnt/sdcard2
- /mnt/sdcard-ext, /mnt/ext_sdcard, /mnt/sdcard/ext_sd
- /mnt/sdcard/extra_sd, /mnt/extrasd_bind, /mnt/sdcard/external_SD
- /storage/sdcard0, /storage/sdcard1,/storage/extSdCar
/sdcard : /mnt/sdcard的符号链,是一个软链接(就是快捷方式),链接到/mnt/sdcard下,也可以查看sdcard的内容。
/mnt/sdcard(<4.0):毫无疑问,sd卡的挂载点,将外部设备挂载在这个目录下。/storage/sdcard(>4.1):那这个是什么鬼,另外里面还有一个emulated的文件夹。
android 升级到4.2以后,采用的是fuse技术,外部设备会被挂载到/storage/emulated/0这个目录下,而不是传统的/mnt/sdcard上,但为了兼容以前的版本,
同时挂载到 /storage/emulated/legacy,还建立三个软连接(快捷方式) /storage/sdcard0 ,/sdcard,/mnt/sdcard ,都指向 /storage/emulated/legacy这个挂载点。也就是
说文件夹0和legacy指向的地址是一致的。4.1为/storage/usStorage/0,
注意:Environment.getExternalStorageDirectory()方法有时是获取到的是内置内存卡,有时获取的是外置内存卡,具体请参看
下面插入的这幅图是eclipse File Explore 下挂载点的信息,看info(指向信息),(华为手机荣耀3c),不同的机型挂载点会有不同。
/mnt/shell/emulated据说是为了多用户设计的,但这几个那个是挂载点,那个是软连接?不知道,求指教,万分感谢。