我编写了一个小函数来计算目录中所有文件的大小。实际的功能做的更多,但这个例子是为了简洁起见。
这很有效,递归地遍历目录很容易,但我想排除所有已经处理过的文件名。我想跟踪 a 中的所有文件名,List
以便在获取文件大小之前检查它是否存在于 中List
,如果存在,则应将其排除。我不想要任何 MD5 校验和或任何东西。文件名足以满足我的情况。
因为我只能从一个函数返回一个值,而 Java 不允许通过引用传递,所以我很不知道什么是实现这一点的最佳方法。这是我的代码:
public static Long getFileSize(File dirDirectory) {
Long lngSize = new Long(0);
for (File filItem : dirDirectory.listFiles()) {
if (filItem.isDirectory()) {
lngSize += getFileSize(filItem);
}
else {
//Is a file with the same filename alrwady been calculated
//then exclude it
//else
//include it.
lngSize += filItem.length();
}
}
return lngSize;
}