Android内置存储和sdcard存储(路径)详解

Android内置存储和sdcard存储(路径)详解

内置存储(external storage,/data/data下)

context.getCacheDir().getPath() //路径为data/user/0/{packageName}/cache,不需要权限context.getFilesDir().getPath() //路径为data/user/0/{packageName}/files,不需要权限context.getDir("myDir", MODE_PRIVATE).getPath() //路径为data/user/0/{packageName}/app_myDir,这里的myDir是自定义写的,不需要权限

扩展存储(internal storage,/sdcard/Android/data下)

context.getObbDir().getPath() //storage/emulated/0/Android/obb/{packageName} 不需要权限context.getExternalCacheDir().getPath() //storage/emulated/0/Android/data/{packageName}/cache 不需要权限context.getExternalFilesDir(null).getPath() //storage/emulated/0/Android/data/{packageName}/files 不需要权限

公共存储区(sdcard下,相当于手机usb连接电脑显示的目录)

Environment.getExternalStorageDirectory().getPath() //storage/emulated/0

用来读写时需要以下读写权限

这个方法在Android10(API 29)废弃,存储相关用context.getExternalFilesDir(null).getPath() 代替,此方法返回的路径是storage/emulated/0/Android/data/{packageName}/files,不需要权限,存储在sdcard对应应用下,这样更合理。如果仍然需要使用Environment.getExternalStorageDirectory().getPath()来获取storage/emulated/0 目录,则可以在AndroidManifest.xml中的application节点中加上android:requestLegacyExternalStorage="true"属性即可。

相关延伸

6.0权限申请相关:

https://blog.csdn.net/DarkfallYou/article/details/100010670

相关推荐

无脑儿的生存时间是多久
365体育中国

无脑儿的生存时间是多久

📅 08-10 👁️ 5915
地心菜的功效与作用、禁忌和食用方法
365体育中国

地心菜的功效与作用、禁忌和食用方法

📅 07-18 👁️ 4425
苹果iOS与安卓Android安全性对比:系统结构、应用审核与恶意软件风险分析
排名前十的龙电影
365bet在线官网

排名前十的龙电影

📅 07-04 👁️ 793
汉中试管医院排名前十 汉中哪个医院能做试管!
365bet在线官网

汉中试管医院排名前十 汉中哪个医院能做试管!

📅 07-23 👁️ 358
收多少钱算是贿赂
365bet在线官网

收多少钱算是贿赂

📅 06-30 👁️ 6218