getCacheDir()方法用于获取/data/data/<application package>/cache目录

getFilesDir()方法用于获取/data/data/<application package>/files目录

通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。

而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项

较优秀的程序都会专门写一个方法来获取缓存地址,如下所示:

[java] view plaincopy
  1. publicStringgetDiskCacheDir(Contextcontext){
  2. StringcachePath = null;
  3. if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
  4. ||!Environment.isExternalStorageRemovable()){
  5. cachePath=context.getExternalCacheDir().getPath();
  6. }else{
  7. cachePath=context.getCacheDir().getPath();
  8. }
  9. returncachePath;
  10. }
可以看到,当SD卡存在或者SD卡不可被移除的时候,就调用getExternalCacheDir()方法来获取缓存路径,否则就调用getCacheDir()方法来获取缓存路径。前者获取到的就是/sdcard/Android/data/<application package>/cache 这个路径,而后者获取到的是 /data/data/<application package>/cache 这个路径。

android程序扫描储存时,如果使用API:EnvironmentgetExternalStorageDirectory()getPath()获得的是默
可以先判断下Environment.getExternalStorageDirectory().getParentFile(),如果返回null则没有父路径,取Environment.getExternalStorageDirectory().getPath()为当前父路径。

Android开发:filePath放在哪个文件夹
Environment.getDataDirectory() = /data
Environment.getDownloadCacheDirectory() = /cache
Environment.getExternalStorageDirectory() = /mnt/sdcard
Environment.getExternalStoragePublicDirectory(“test”) = /mnt/sdcard/test
Environment.getRootDirectory() = /system
getPackageCodePath() = /data/app/com.my.app-1.apk
getPackageResourcePath() = /data/app/com.my.app-1.apk
getCacheDir() = /data/data/com.my.app/cache
getDatabasePath(“test”) = /data/data/com.my.app/databases/test
getDir(“test”, Context.MODE_PRIVATE) = /data/data/com.my.app/app_test
getExternalCacheDir() = /mnt/sdcard/Android/data/com.my.app/cache
getExternalFilesDir(“test”) = /mnt/sdcard/Android/data/com.my.app/files/test
getExternalFilesDir(null) = /mnt/sdcard/Android/data/com.my.app/files
getFilesDir() = /data/data/com.my.app/files


更多相关文章

  1. Android分享图片
  2. Android获取状态栏和标题栏的高度
  3. android非常好的在线视频播放器源码(包含在线音频播放源码)
  4. 1、Android开发环境的搭建
  5. android 获取camera状态?
  6. Android获取一个月前的日期
  7. Android(安卓)获取当前日期 时间很方便 直接调用Calendar类即可
  8. android 获取手机信息(device ip,os version etc.)
  9. Pycharm安装PyQt5的详细教程

随机推荐

  1. Android Gallery滑动太快的问题
  2. android-弹出窗口的使用(1)
  3. 使用Fragment后翻转屏崩溃解决办法
  4. Android 在资源文件(res/strings.xml)定义
  5. Settings点击Location(位置)后右上角的开关
  6. android学习笔记---环境搭建 appcompat_v
  7. Android 为你的应用程序添加快捷方式【优
  8. 删除Listview中第一个项目顶部的行
  9. Android下usb host接口插入usb设备时,如何
  10. Android热修复实现