存储路径

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43724742/article/details/99822247

Android手机上的存储空间可做如下划分:
内存:RAM
内部存储:内部ROM
外部存储:外部ROM和SDCard

打开Device File Explore可以看到手机的文件系统:
在这里插入图片描述

内部存储:

data目录对应了内部存储的路径,每安装 一个App,系统都会在 data/data 目录下以应用包名为名字自动创建与之对应的文件夹,这个文件夹用来存放 WebView 缓存,SharedPreferences 和数据库信息,卸载 App 时,对应的内容也会自动删除

优点:比较稳定,存储方便,操作简单,更加安全(可以控制访问权限)等优点
缺点:空间有限。

方法 路径
Environment.getDataDirectory().getParentFile() /(内存根目录)
Environment.getDataDirectory() /data
Environment.getDownloadCacheDirectory() /cache
Environment.getRootDirectory() /system

私有目录:

方法 路径
context.getFilesDir() /data/user/0/packageName/files
context.getCacheDir() /data/user/0/packageName/cache

外部存储:

外部存储对应的目录是mnt,store和sdcard目录
优点是存储空间大,无需担心数据清除问题,缺点不能稳定使用。
Environment .getExternalStorageDirectory()可以获取到外部存储,在不同的系统版本打印其路径,发现打印结果有所不同:

/sdcard/
/mnt/sdcard/
/storage/sdcard0/
/storage/emulated/legacy/				//这里的legacy是0,1,2...

公有目录:有9大类,比如DCIM、Download等系统为用户创建的文件夹
Environment.getExternalStoragePublicDirectory(String)方法可以获取公有目录

方法 路径
DIRECTORY_ALARMS /storage/sdcard0/Alarms
DIRECTORY_DCIM /storage/sdcard0/DCIM
DIRECTORY_DOWNLOADS /storage/sdcard0/Download
DIRECTORY_MOVIES /storage/sdcard0/Movies
DIRECTORY_MUSIC /storage/sdcard0/Music
DIRECTORY_NOTIFICATIONS /storage/sdcard0/Notifications
DIRECTORY_PICTURES /storage/sdcard0/Pictures
DIRECTORY_PODCASTS /storage/sdcard0/Podcasts
DIRECTORY_RINGTONES /storage/sdcard0/Ringtones

私有目录: 即Android文件夹/storage/sdcard/Android/,其中的data文件夹包含了许多包名组成的文件夹。
context.getExternalCacheDir()方法可以获取到/storage/emulated/0/Android/data/com.example.mtest/cache路径就是一个私有目录

可以看到在sd卡根目录中经常会出现数字0,这里的数字表示userId的意思;

Environment.getExternalStorageState()可以获取外部存储状态,mounted表示外部存储已安装

Android Q
Android Q中通过Context.getExternalFilesDir()获取私有目录

扫描二维码关注公众号,回复: 7564606 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_43724742/article/details/99822247