#Java扫描文件目录大小及递归扫描
package com.example.core.mydemo;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FileDirSizeTest {
public static void main(String[] args) {
try{
FileWriter fw = new FileWriter("E:\\test\\test221109.txt");
printDir("E:\\test",fw);
fw.close();
}catch (Exception e) {
e.printStackTrace();
}
}
public static void printDir(String dir,FileWriter fw) throws IOException {
File f = new File(dir);
if(f.exists()){
File[] fileArray = f.listFiles();
for(File f2 : fileArray){
if(f2.isDirectory()){
long size = FileUtils.sizeOfDirectory(new File(f2.getPath()));
String realSize = "0";
if (size>FileUtils.ONE_GB) {
realSize = String.valueOf((size / FileUtils.ONE_GB))+"GB";
}else if(size >=FileUtils.ONE_MB){
realSize = String.valueOf((size / FileUtils.ONE_MB))+"MB";
}else if(size >=FileUtils.ONE_KB){
realSize = String.valueOf((size / FileUtils.ONE_KB))+"KB";
}
System.out.println("Path:"+f2.getAbsolutePath()+",Size: " + realSize);
fw.write("Path:"+f2.getAbsolutePath()+",Size: " + realSize +"\n");
printDir(f2.getAbsolutePath(),fw);
}
}
}
}
}