Android获取缓存大小与删除缓存

  • Post author:
  • Post category:其他


先上效果图:



1> 获取缓存大小:

 private static long getFolderSize(File file)
    {
        long size = 0;
        File[] files = file.listFiles();  //获取file目录的所有file
        for(int i=0; i< files.length;i++)
        {
            if(files[i].isDirectory()){      //如果是目录的话,递归
                size = size + getFolderSize(files[i]);  //递归用法
            }else {
                size = size + files[i].length(); //每一个file的长度
            }
        }
        return size;
    }


由于上面返回的是字节数,所以还需要转化一下

 long cacheSize = getFolderSize(cache);
        double Kbyte = cacheSize/1024;
        double Mbyte = Kbyte/1024;
        if(Mbyte<1){
            result= "" + String.format("%.2f",Kbyte) + "KB";  //保留2位小数,四舍五入
        }else {
            result = "" + String.format("%.2f",Mbyte) + "MB";
        }
        return result;


2> 删除缓存。【判断file是文件还是目录; 是文件的话直接file.delete(), 是目录的话,继续递归】

 public static void del(File file)
    {
        if(file.isDirectory()){   //如果是目录,进行递归
            File[] fileList = file.listFiles();
            for(File f: fileList){
                del(f);
            }
        }else {
            file.delete();  //不是目录,即文件,直接删除
        }
    }

然后就ok啦啦啦啦…..



版权声明:本文为dummyo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。