目录下文件大小统计

Primary Practice h57

统计一个目录下所有文件大小的加和

递归。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.huawei.classroom.student.h57;

import java.io.File;

/**
* @author super
*/
public class FileTool {
private long sum = 0;

/*
* 统计一个目录下所有文件大小的加和
*/
public long recursiveCalcFileSize(String homeDir) {
File home = new File(homeDir);
calcFiles(home);
return sum;
}

private void calcFiles(File dir) {
if (!dir.exists() || !dir.isDirectory()) {
return;
}
String[] files = dir.list();
if (files == null) {
return;
}
for (String s : files) {
File file = new File(dir, s);
if (file.isFile()) {
sum += file.length();
} else {
calcFiles(file);
}
}
}
}

Source code