publicclassDataCleanManager?{
publicstaticString?getTotalCacheSize(Context?context)throwsException?{
longcacheSize?=?getFolderSize(context.getCacheDir());
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))?{
cacheSize?+=?getFolderSize(context.getExternalCacheDir());
}
returngetFormatSize(cacheSize);
}
publicstaticvoidclearAllCache(Context?context)?{
deleteDir(context.getCacheDir());
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))?{
deleteDir(context.getExternalCacheDir());
}
}
privatestaticbooleandeleteDir(File?dir)?{
if(dir?!=null&&?dir.isDirectory())?{
String[]?children?=?dir.list();
for(inti?=0;?i?<?children.length;?i++)?{
booleansuccess?=?deleteDir(newFile(dir,?children[i]));
if(!success)?{
returnfalse;
}
}
}
returndir.delete();
}
//?获取文件
//Context.getExternalFilesDir()?-->?SDCard/Android/data/你的应用的包名/files/?目录,一般放一些长时间保存的数据
//Context.getExternalCacheDir()?-->?SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
publicstaticlonggetFolderSize(File?file)throwsException?{
longsize?=0;
try{
File[]?fileList?=?file.listFiles();
for(inti?=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();
}
returnsize;
}
/**
*?格式化单位
*
*?@param?size
*?@return
*/
publicstaticString?getFormatSize(doublesize)?{
doublekiloByte?=?size?/1024;
if(kiloByte?<1)?{
//????????????return?size?+?"Byte";
return"0K";
}
doublemegaByte?=?kiloByte?/1024;
if(megaByte?<1)?{
BigDecimal?result1?=newBigDecimal(Double.toString(kiloByte));
returnresult1.setScale(2,?BigDecimal.ROUND_HALF_UP)
.toPlainString()?+"KB";
}
doublegigaByte?=?megaByte?/1024;
if(gigaByte?<1)?{
BigDecimal?result2?=newBigDecimal(Double.toString(megaByte));
returnresult2.setScale(2,?BigDecimal.ROUND_HALF_UP)
.toPlainString()?+"MB";
}
doubleteraBytes?=?gigaByte?/1024;
if(teraBytes?<1)?{
BigDecimal?result3?=newBigDecimal(Double.toString(gigaByte));
returnresult3.setScale(2,?BigDecimal.ROUND_HALF_UP)
.toPlainString()?+"GB";
}
BigDecimal?result4?=newBigDecimal(teraBytes);
returnresult4.setScale(2,?BigDecimal.ROUND_HALF_UP).toPlainString()
+"TB";
}
}