Android删除应用缓存的实现

来源:互联网 发布:阿里云200m无限流量 编辑:程序博客网 时间:2024/06/05 01:02

public class AppCache {
private Context context;

public AppCache(Context context) {    this.context = context;}/** * 获取应用缓存数据 * */public String getCache() {    String cacheStr = null;    // 获取缓存路径    // Log.d("msg", "缓存-->" + context.getCacheDir().toString());    try {        cacheStr = getFormatSize(getFolderSize(context.getCacheDir()));    } catch (Exception e) {        e.printStackTrace();    }    return cacheStr;}/** * 递归删除文件 * */public void deleteCache(File fileDir) {    File[] file = fileDir.listFiles();    if (file != null) {        for (File f : file) {            if (f.isDirectory()) {                deleteCache(f);            } else {                f.delete();            }        }    }    fileDir.delete();}/** * 格式化单位 */private static String getFormatSize(double size) {    double kiloByte = size / 1024;    double megaByte = kiloByte / 1024;    if (megaByte < 1) {        BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));        return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "KB";    }    double gigaByte = megaByte / 1024;    if (gigaByte < 1) {        BigDecimal result2 = new BigDecimal(Double.toString(megaByte));        return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "MB";    }    double teraBytes = gigaByte / 1024;    if (teraBytes < 1) {        BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));        return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB";    }    BigDecimal result4 = new BigDecimal(teraBytes);    return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB";}// 获取文件private static long getFolderSize(File file) throws Exception {    long size = 0;    try {        File[] fileList = file.listFiles();        for (int i = 0; i < fileList.length; i++) {            // 如果下面还有文件            if (fileList[i].isDirectory()) {                size = size + getFolderSize(fileList[i]);            } else {                size = size + fileList[i].length();            }        }    } catch (Exception e) {        e.printStackTrace();    }    return size;}

}

0 0
原创粉丝点击