最近C盘爆满,想删文件又不知道从何入手,手动右键属性看文件夹大小找文件删除。文件夹太多,着实难找,一个一个找,着实麻烦。
既然要找文件夹大小,为什么不写几行代码统计一下呢?
import org.apache.commons.io.FileUtils;
import java.io.File;
/**
* @author Jame
* @date 2018/08/31 10:29
*/
public class FileCalculator {
public static void print(File file){
for (File f : file.listFiles()){
try {
Long size = 0L;
if (f.isDirectory()){
size = FileUtils.sizeOfDirectory(f)/1024/1024;
}else {
size = FileUtils.sizeOf(f)/1024/1024;
}
if (size>500){
//输出大于500M的文件夹
System.out.println("文件夹:"+f.getPath()+",大小为:"+ size +"M");
if (size>1024){
//继续遍历大于1G的文件夹
print(f);
}
}
}catch (Exception e){
//System.out.println("文件夹:"+f.getName()+"无法计算.");
}
}
}
public static void main(String[] args) throws Exception {
String path = "C:\\Windows";
File file = new File(path);
print(file);
}
}
输出如下:
文件夹:C:\Windows\assembly,大小为:1323M
文件夹:C:\Windows\assembly\NativeImages_v4.0.30319_64,大小为:501M
文件夹:C:\Windows\Fonts,大小为:574M
文件夹:C:\Windows\Installer,大小为:25872M
文件夹:C:\Windows\Microsoft.NET,大小为:896M
文件夹:C:\Windows\System32,大小为:19447M
文件夹:C:\Windows\System32\DriverStore,大小为:15981M
文件夹:C:\Windows\System32\DriverStore\FileRepository,大小为:15979M
文件夹:C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_326dd044df8d1c76,大小为:501M
文件夹:C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_e0d9253f13281f5c,大小为:530M
文件夹:C:\Windows\SysWOW64,大小为:1663M
文件夹:C:\Windows\WinSxS,大小为:6912M
Process finished with exit code 0