1 统计某个目录下有多少个java文件,有多少个class文件

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? 还有如何避免递归重复输出呢?

思路:

1.创建File对象,用file.list()方法返回所有文件包括文件夹,

2.用isFile判断是否为文件;

3.分别统计扩展名为java,class的文件数就可以了。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632