版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/starjingweij/article/details/80115227
利用树的后序遍历来列出文件夹的子文件大小和文件夹的大小,代码如下
import java.io.File; public class test { public static void main(String[] args){ // 获取某一个文件夹 File file = new File("F:\\qycache"); // 调用方法 long size = getFileSize(file,0); System.out.println("总大小为"+(double)size/(1024*1024)+"MB"); } private static long getFileSize(File file,int depth) { long totalSize = file.length(); if(file.isDirectory()){ File[] files = file.listFiles(); for (File children : files){ totalSize += getFileSize(children,depth+1); } } for (int i = 0; i < depth; i++) { System.out.print("----"); } // 输出文件名和大小 System.out.println(file.getName()+" "+(totalSize/1024+1)+"k"); return totalSize; } }
对子文件先进行处理, 所以对文件名称的输出和文件大小的输出放在递归之后
利用这段代码遍历电脑中的一个文件夹,输出结果如下