public classCacheDataManager {

public staticStringgetTotalCacheSize(Context context)throwsException {

longcacheSize =getFolderSize(context.getCacheDir());

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

cacheSize +=getFolderSize(context.getExternalCacheDir());

}

returngetFormatSize(cacheSize);

}

public static voidclearAllCache(Context context) {

deleteDir(context.getCacheDir());

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

deleteDir(context.getExternalCacheDir());

}

}

private static booleandeleteDir(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) {

return false;

}

}

}

returndir.delete();

}

// 获取文件

// Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/

// 目录,一般放一些长时间保存的数据

// Context.getExternalCacheDir() -->

// SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据

public static longgetFolderSize(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;

}

/**

* 格式化单位

*

*@paramsize

*/

public staticStringgetFormatSize(doublesize) {

doublekiloByte = size /1024;

if(kiloByte <1) {

returnsize +"Byte";

}

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";

}

}

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. cts android.hardware.camera2.cts.RecordingTest --testBasicRe
  3. androidj常用数据库操作JDBC Utils
  4. ListActivity简介
  5. Android(安卓)打开资源raw文件
  6. Android手机目录结构
  7. Android(安卓)SharedPreferences工具类
  8. Handler+Thread+Message模式 Android线程网络
  9. Bmob中的几种查询方法

随机推荐

  1. 【Android】Android之Copy and Paste
  2. RxJava 1.x 学习
  3. Android中文文档——安装SDK资料
  4. 诺基亚N900安装Android 2.2改版系统Nitdr
  5. android中模拟器中实现GPS坐标改变
  6. Error:(17, 0) Could not find method an
  7. [Android UI]android-lockpattern图案解
  8. Android消息机制源码解析(一)——消息的载
  9. Android异步消息机制Handler详解,源码剖析
  10. 关于 Android 下的自动化测试之二