Androi存储目录解析
Context.getFilesDir()
获取路径:/data/user/0/应用包名/files
该目录是应用的文件存储目录,应用被卸载时,该目录一同被系统删除。默认存在,默认具备读写权限(6.0系统可以不用向用户申请)
Context.getCacheDir()
获取路径:/data/user/0/应用包名/cache
当设备的内部存储空间不足时,Android 可能会删除这些缓存文件以回收空间。 但您不应该依赖系统来为您清理这些文件, 而应该始终自行维护缓存文件,使其占用的空间保持在合理的限制范围内(例如 1 MB)。 当用户卸载您的应用时,这些文件也会被移除。getFileDir,不会因为系统内存不足而被清空。(6.0系统可以不用向用户申请)
Context.getObbDir()
获取路径:/storage/emulated/0/Android/obb/应用包名
该目录是应用的数据存放目录,一般被用来存放游戏数据包obb文件。默认存在,可读写(6.0系统可以不用向用户申请)
Context.getCodeCacheDir()
获取路径:/data/user/0/应用包名/code_cache
默认存在,可读写。(api至少21,6.0系统可以不用向用户申请)
Context.getExternalFilesDir(null)
null 代表根目录
获取路径:(以下载目录为准) /storage/emulated/0/Android/data/应用包名/files
默认存在,可读写。(6.0系统可以不用向用户申请)
Context.getExternalCacheDir()
获取路径:/storage/emulated/0/Android/data/应用包名/cache
默认存在,可读写。(6.0系统可以不用向用户申请)
Context.getDatabasePath(name)
name 数据库名称
获取路径:/data/user/0/应用包名/databases/参数名
默认不存在,可读写。(6.0系统可以不用向用户申请)
Context.getDir(String name, int mode)
mode 是指文件夹的访问权限而并不包括其子文件夹和文件的访问权限:
MODE_PRIVATE :该文件只能被当前程序读写;
MODE_APPEND : 以追加方式打开该文件,应用程序可以向该文件中追加内容。
MODE_WORLD_READABLE :该文件的内容可以 被其他程序读取。
MODE_WORLD_WRITEABLE :该文件的内容可以 被其他程序读取、写入。
获取路径:/data/user/0/应用包名/app_参数名
默认存在,可读写。分为Private等三个权限,private代表仅能自己访问。(6.0系统可以不用向用户申请)
Context.getPackageCodePath()
获取路径:/data/app/应用包名-1/base.apk
默认存在,获取apk包路径
Environment.getExternalStorageDirectory()
获取路径:/storage/emulated/0
默认存在,声明权限则可读写(6.0和以后系统还需要向用户申请同意才可以)
Environment.getExternalStoragePublicDirectory(String type)
type 目录类别:DIRECTORY_MUSIC, DIRECTORY_PODCASTS, DIRECTORY_RINGTONES, DIRECTORY_ALARMS, DIRECTORY_NOTIFICATIONS, DIRECTORY_PICTURES, DIRECTORY_MOVIES, DIRECTORY_DOWNLOADS, DIRECTORY_DCIM, or DIRECTORY_DOCUMENTS
获取路径:/storage/emulated/0/Download(以下载目录为例)
默认存在,声明权限则可读写(6.0和以后系统还需要向用户申请同意才可以)
Environment.getDownloadCacheDirectory()
获取路径:/data/cache
默认存在,声明权限则可读写(6.0和以后系统还需要向用户申请同意才可以)
Context.getFileStreamPath(String name)
name:您想要得到它的pat的文件的名称
获取路径:/data/user/0/应用包名/files/download(示例download)
该目录是应用的文件存储目录,应用被卸载时,该目录一同被系统删除。默认存在,默认具备读写权限(6.0系统可以不用向用户申请)