package A;
import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
import java.io.FileFilter;
public class AA{
/********** Begin **********/
public static void main(String[] args) {
File f = new File("C:\\Users\\Anonymous\\eclipse-workspace\\myNet");
countNum(f,0,0);
}
public static void countNum(File f,int num1,int num2) {
File[] files = f.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
// TODO Auto-generated method stub
return pathname.isDirectory()||pathname.getName().endsWith(".java")||pathname.getName().endsWith(".class"); }
});
for(File file:files) {
if(file.isDirectory()) {
countNum(file,num1,num2);
}
else {
if(file.getName().endsWith(".java")) {
num1++;
}
else if(file.getName().endsWith(".class")) {
num2++;
}
}
}
System.out.println(num1+","+num2);
}
/********** End **********/
}
输出打印结果为:
0,0
0,1
0,1
0,0
1,0
1,0
0,0
0,0
其中文件有2个java和c2个lass文件 为什么打印结果为1?而不是2? 还有如何避免递归重复输出呢?