Java:如何计算一个文件或文件夹的大小?
使用递归实现。
代码:
class FileUtils{ /** * 存放文件大小 */ private static long countSize; /** * 递归遍历所有文件 */ private static void allFiles(String path){ File fl = new File(path); if(fl.exists()){ if(fl.isDirectory()){//递归头 File[] fls = fl.listFiles(); for(File f :fls){ allFiles(f.getPath());//递归体 } }else if(fl.isFile()){ countSize+=fl.length(); } }else{ countSize=-1; } } /** * @param path 文件路径 * @return 文件大小,不存在时返回-1。(单位:字节) */ static long getFileSize(String path){ allFiles(path); long temp = countSize; countSize= 0; return temp; } }