Android下的文件目录总结
在Android系统中,我们可以在如下3种目录中写入文件:
1.应用私有存储(内置存储)
- 获取方式:
- Context.getFileDir():获取内置存储下的文件目录,可以用来保存不能公开给其他应用的一些敏感数据如用户个人信息
- Context.getCacheDir():获取内置存储下的缓存目录,可以用来保存一些缓存文件如图片,当内置存储的空间不足时将系统自动被清除
- 绝对路径:
- Context.getFileDir():/data/data/应用包名/files/
- Context.getCacheDir():/data/data/应用包名/cache/
- 写权限:不需要申请
说明:这是手机的内置存储,没有root的过的手机是无法用文件管理器之类的工具查看的。而且这些数据也会随着用户卸载App而被一起删除。这两个目录其实就对应着设置->应用->你的App->存储空间下面的清除数据和清楚缓存
2.应用扩展存储(SD卡)
- 获取方式:
- Context.getExternalFilesDir():获取SD卡上的文件目录
- Context.getExternalCacheDir():获取SD卡上的缓存目录,可以用作图片缓存
- 绝对路径:
- Context.getExternalFilesDir():SDCard/Android/data/应用包名/files/
- Context.getExternalCacheDir():SDCard/Android/data/应用包名/cache/
- 写权限:
- API < 19:需要申请
- API >= 19:不需要申请
说明:此目录可以被其他的应用读取到,所以这个目录下,不应该存放用户的敏感信息。同上面一样的,这里的文件会随着App卸载而被删除,也可以由用户手动在设置界面里面清除。
3.公共存储(SD卡)
- 获取方式:Environment.getExternalStorageDirectory()
- 绝对路径:SDCard/你设置的文件夹名字/
- 写权限:需要申请
卸载应用后下载下来的文件不会丢失。且此目录始终需要申请SD写入权限。