利用樹的後序遍歷來列出文件夾的子文件大小和文件夾的大小,代碼如下
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; } }
對子文件先進行處理, 所以對文件名稱的輸出和文件大小的輸出放在遞歸之後
利用這段代碼遍歷電腦中的一個文件夾,輸出結果如下