package com.gnod.geekr.tool; import java.io.File; import java.text.DecimalFormat; public class FileUtils { /** * 统计目录大小 * @param * @return Byte */ public static long getDirSize(File dir) { if(dir == null) { return 0; } if(!dir.isDirectory()) { return 0; } long totalSize = 0; File[] files = dir.listFiles(); for(File file: files){ if(file.isFile()) { totalSize += file.length(); } else if(file.isDirectory()) { // totalSize += file.length(); totalSize +=getDirSize(file); //递归统计子目录大小 } } return totalSize; } /** * 删除指定目录 * @param curTime 系统当前时间 * @return 删除文件数目(包括目录) */ public static int deleteDir(File dir, long curTime) { int count = 0; if(dir == null) return 0; if(!dir.isDirectory()) return 0; File[] files = dir.listFiles(); for(File file: files) { if(file.isDirectory()) { count += deleteDir(file, curTime); } if(file.lastModified() < curTime) { if(file.delete()) { ++ count; } } } return count; } /** * 文件大小转换函数 * @param size * @return B/KB/MB/GB */ public static String formatSize(long size) { DecimalFormat df = new DecimalFormat("#.00"); String fileSizeStr = ""; if(size < 1024) { fileSizeStr = df.format((double)size) + "B"; } else if(size < 1048576) { fileSizeStr = df.format((double)size/1024) + "KB"; } else if(size < 1073741824) { fileSizeStr = df.format((double)size/1048576) + "MB"; } else { fileSizeStr = df.format((double)size /1073741824) + "GB"; } return fileSizeStr; } public static String convertUrl(String url){ return url.replaceAll("[/.:]", ""); } }