学习递归,我不确定为什么这不起作用。我需要它给我在我选择的文件夹中的10000字节到25000字节之间的文件总量。应该返回3个文件但它没有递增。
这是我得到的:
public static int betweenFileSize(File f) {
if (f.isFile()) {
return 0;
} else {
int amountOfFiles = 0;
for (File file : f.listFiles()) {
if (file.isHidden() == false) {
if (file.length() >= 10000 && file.length() <= 25000) {
amountOfFiles += betweenFileSize(file);
}
}
}
return amountOfFiles;
}
}
答案 0 :(得分:2)
您正在对betweenFileSize
进行递归调用,查找您正在查找的大小范围内的文件。这毫无意义。
您应该只对目录文件递归调用该方法。对于满足您的大小标准的文件,只需在计数中加1即可。
public static int betweenFileSize(File f) {
if (f.isFile()) {
return 0;
} else {
int amountOfFiles = 0;
for (File file : f.listFiles()) {
if (file.isHidden() == false) {
if (file.isDirectory()) {
amountOfFiles += betweenFileSize(file);
} else if (file.length() >= 10000 && file.length() <= 25000) {
amountOfFiles++;
}
}
}
return amountOfFiles;
}
}