总结存储路径,方便下次查阅,看了很多介绍存储路径的文章,但是还是自己验证一下来的爽快~
这里分为内部存储和外部存储。
内部存储:即手机自带的存储目录。
外部存储:如SD卡。
不管现在的手机是否有可移动的SD卡,总是有外部存储和内部存储。
先上图:
内部存储
(一)非私有目录:不会随着 APP 的卸载而删除
1. Environment.getDataDirectory()
绝对路径: /data
获得根目录下的 /data
2. Environment.getDownloadCacheDirectory()
绝对路径: /data/cache
获得缓存目录
3. Environment.getRootDirectory()
绝对路径: /system
获得系统目录
(二)私有目录:随着App 的卸载而删除
4. context.getFileDir()
绝对路径: /data/user/0/包名/files
路径中带有包名,用于获取App的files目录
5.context.getCacheDir()
绝对路径:/data/user/0/包名/cache
外部存储
外插SD卡的一般需要判断是否插了SD卡;但是现在大部分手机都是内置SD卡。
(一)非私有目录:
1. Environment.getExternalStorageDirectory()
绝对路径: /storage/emulated/0
获得SD卡根路径
2. Environment.getExternalStoragePublicDirectory(String)
绝对路径:根据参数而定
获得放置特定类型共享文件的目录,比如音乐、电影、铃声等。
(二)私有目录:
3. context.getExternalFilesDir(String)
绝对路径: /storage/emulated/0/Android/data/包名/files
获得SD卡中 APP 下的 /files 目录
4.context.getExternalCacheDir()
绝对路径: /storage/emulated/0/Android/data/包名/cache
获得SD卡中 APP 下的 /cache 缓存目录
可以看到,内部和外部存储还分为私有目录和非私有目录,也就是带有包名的都是私有目录,很正常,不可能整个存储设备都是你一个应用的,肯定是分给很多应用的。
喜欢点个赞~