在android 4.2版本之前,通过Environment.getExternalStorageDirectory()获取的sdcard默认目录是正常的,可进行读写,一般的结果是“/mnt/sdcard”,但是在4.2版本之后,获取的sdcard目录是“/storage/emulated/0”,使用File.exist()方法返回true表示文件/目录是存在的,但是通过adb向该返回的目录中写数据(上传文件=)是不成功的,返回的错误是"No such file or directory",个人判断是返回的路径“/storage/emulated/0”其实是个类似快捷方式的文件,通过特定的解析方式可以认为是目录,但对于adb来说,该路径就是个文件,adb没有做过多的属性=判断。上述判断也是有依据的,通过adb的shell命令获取指定目录下的文件/文件夹列表, 该路径显示的是文件,且有大小。
本文介绍了 Android 4.2 版本之后,通过 Environment.getExternalStorageDirectory() 获取的 SDcard 默认目录由“/mnt/sdcard”变更为“/storage/emulated/0”。此变更可能导致通过 adb 向该目录写数据失败,因为新路径可能被视为文件而非目录。
3万+

被折叠的 条评论
为什么被折叠?



