浪奔的小三爷 2021-06-06 23:34 采纳率: 0%
浏览 39

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

  • 写回答

2条回答 默认 最新

  • 关注

    思路:

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

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

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

    评论

报告相同问题?

悬赏问题

  • ¥20 遥感植被物候指数空间分布图制作
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker
  • ¥15 数学建模大赛交通流量控制
  • ¥15 为什么我安装了open3d但是在调用的时候没有报错但是什么都没有发生呢
  • ¥50 paddleocr最下面一行似乎无法识别
  • ¥15 求某类社交网络数据集
  • ¥15 靶向捕获探针方法/参考文献
  • ¥15 很抱歉出现错误word不能启动(24),如何解决?
  • ¥15 javascript下载网络图片