记录一下开发中遇到的一些目录。
在开发中会有内部存储器(Internal Storage)和外部存储器(External Storage)。
Internal Storage
内部存储,路径:data/data/packageName/(此部分的根目录)。这个目录下的文件为应用私有的,其他的应用是无法访问的。同时此目录下的文件是会随应用的卸载而被删除。读写此目录下的文件是不需要权限的。
-getDir(String name, int mode)
返回对应目录下的File文件夹对象。
-getFilesDir()
返回根目录/files文件夹,Context.openFileInput()
和Context.openFileOutput
都是这个文件夹。
-fileList()
返回的是files下的所有文件名
-deleteFile(String name)
删除files下指定名称的文件。
-getCacheDir()
该方法返回的是根目录/cache的File对象.当Android的内部存储容量过低时,android会自动清除缓存文件
External Storage
外部储存,在此存储数据是不安全的。在这部分存储,个人可以分为两个部分来总结。
1.本应用相关目录
此部分路径为/storage/emulated/0/Android/data/packageName/。此目录下的文件会随软件的卸载而被删除。在4.4之后读写此目录下的文件不需要权限。但是这个目录下的文件可以被用户以及带有WRITE_EXTERNAL_STORAGE
或WRITE_EXTERNAL_STORAGE
权限的应用读取或修改。
-getExternalFilesDir(String type)
返回/storage/emulated/0/Android/data/packageName/files/type文件夹,若type为null
则返回/storage/emulated/0/Android/data/packageName/files文件夹。
-getExternalCacheDir()
返回/storage/emulated/0/Android/data/packageName/cache文件夹
2.外部自定义目录
除1以外的目录。读写这部分文件需要WRITE_EXTERNAL_STORAGE
或WRITE_EXTERNAL_STORAGE
权限,6.0以上需要运行时权限。这部分文件是不会随应用被卸载而删除。
-Environment.getExternalStorageDirectory()
返回/storage/emulated/0文件。