android 显示缓存,Android 获取缓存大小及清除
获取缓存的方法:// 递归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 =
获取缓存的方法:
// 递归
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();
}
更多推荐
所有评论(0)