package com.wm.remusic.proxy.utils;
import android.os.StatFs;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
public class ProxyUtils {
private static final String LOG_TAG = ProxyUtils.class.getSimpleName();
/**
* 删除多余的缓存文件
*
* @param dirPath 缓存文件的文件夹路径
* @param maximun 缓存文件的最大数量
*/
static protected void asynRemoveBufferFile(final int maximun) {
new Thread() {
public void run() {
List<File> lstBufferFile = getFilesSortByDate(Constants.DOWNLOAD_PATH);
while (lstBufferFile.size() > maximun) {
lstBufferFile.get(0).delete();
lstBufferFile.remove(0);
}
}
}.start();
}
/**
* 获取外部存储器可用的空间
*
* @return
*/
static protected long getAvailaleSize(String dir) {
StatFs stat = new StatFs(dir);// path.getPath());
long totalBlocks = stat.getBlockCount();// 获取block数量
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize; // 获取可用大小
}
/**
* 获取文件夹内的文件,按日期排序,从旧到新
*
* @param dirPath
* @return
*/
static private List<File> getFilesSortByDate(String dirPath) {
List<File> result = new ArrayList<File>();
File dir = new File(dirPath);
File[] files = dir.listFiles();
if (files == null || files.length == 0)
return result;
Arrays.sort(files, new Comparator<File>() {
public int compare(File f1, File f2) {
return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
}
});
for (int i = 0; i < files.length; i++) {
result.add(files[i]);
}
return result;
}
public static String getExceptionMessage(Exception ex) {
String result = "";
StackTraceElement[] stes = ex.getStackTrace();
for (int i = 0; i < stes.length; i++) {
result = result + stes[i].getClassName() + "." + stes[i].getMethodName() + " " + stes[i].getLineNumber()
+ "line" + "\r\n";
}
return result;
}
}