Android(安卓)获取缓存大小及清除
16lz
2021-01-24
获取缓存的方法:
// 递归public static long getFileSize(File f) throws Exception// 取得文件夹大小{long size = 0;File flist[] = f.listFiles();for (int i = 0; i < flist.length; i++) {if (flist[i].isDirectory()) {size = size + getFileSize(flist[i]);} else {size = size + flist[i].length();}}return size;}public static String FormetFileSize(long fileS) {// 转换文件大小if(fileS == 0){return "0KB";}DecimalFormat df = new DecimalFormat("#.00");String fileSizeString = "";if (fileS < 1024) {fileSizeString = df.format((double) fileS) + "B";} else if (fileS < 1048576) {fileSizeString = df.format((double) fileS / 1024) + "K";} else if (fileS < 1073741824) {fileSizeString = df.format((double) fileS / 1048576) + "M";} else {fileSizeString = df.format((double) fileS / 1073741824) + "G";}return fileSizeString;}
获取缓存数据大小:
String cacheFileSizeString = FormetFileSize(getFileSize(getCacheDir())+ getFileSize(getExternalCacheDir()));
清除缓存是调用下面两个方法即可:
public static boolean trimCache(Context context) { try { File dir = context.getCacheDir(); if (dir != null && dir.isDirectory() && dir.listFiles().length != 0) { return deleteDir(dir); } else { return false; } } catch (Exception e) { e.printStackTrace(); return false; } }public static boolean trimExternalCache(Context context) {try {File dir = context.getExternalCacheDir();if (dir != null && dir.isDirectory() && dir.listFiles().length != 0) {return deleteDir(dir);} else {return false;}} catch (Exception e) {e.printStackTrace();return false;}}public static boolean deleteDir(File dir) {if(dir != null && dir.isDirectory()) {String[] children = dir.list();for(int i = 0; i < children.length; i++) {boolean success = deleteDir(new File(dir, children[i]));if(!success) {return false;}}}return dir.delete();}
更多相关文章
- C语言函数的递归(上)
- android 调用系统相机拍照并保存照片原图
- Android(安卓)RecycerView 中根据图片大小自适应控件大小的实现
- 【Android笔记】Android统计文件夹大小,删除文件夹下的所有文件方
- Android(安卓)多媒体扫描过程
- 使用bitmap缩略图,解决图片大小超过预算的VM的问题
- Android:ListView优化
- android按屏幕大小动态确定控件位置及大小
- android OOM的那些事