原文:Android我还可以相信你多少系列文章五之存储卡
补充
-
/data/data/packageName/
为 /data/user/*/packagename
的映射,为Andorid
多用户设计,/data/data/
为当前用户对应的/data/user/*
下的内容。
- 调用
get***Dir()
的一般为内部存储,/data/data/packageName/
或者/data/user/num/packageName/
(不需要申请读写权限)
- 调用
getExternal***Dir
的一般为外部存储,随应用程序的卸载而删除 /storage/emulated/0/Andorid/data/packageName/
(不需要申请读写权限)
- 调用Environment.getExternalxxxDirectory()的一般为公共外部存储,
/storage/emulated/0/...
(需要申请读写权限)
实例
//本例中packageName = com.e_gavin163.listest;
printFilePath("getFilesDir()", getFilesDir()); // = /data/user/0/com.e_gavin163.listest/files
printFilePath("getCacheDir()", getCacheDir()); // = /data/user/0/com.e_gavin163.listest/cache
printFilePath("getDataDir()", getDataDir()); // = /data/user/0/com.e_gavin163.listest
printFilePath("getExternalFilesDir(\"fileName\")", getExternalFilesDir("fileName")); // = /storage/emulated/0/Android/data/com.e_gavin163.listest/files/fileName
printFilePath("Environment.getExternalStorageDirectory()", Environment.getExternalStorageDirectory()); // = /storage/emulated/0
网友评论