今天学习了递归,课后要求用递归遍历指定目录(你们写Java代码的目录)的文件绝对路径
我发现这个很好用 就把以前学习java建的文件用这个方法遍历了一下, 后来我看里面文件太多想统计下数量,就定义个变量count,然后每遍历一次就count++
最后输出结果发现,只是每一个单独的目录下输出的统计数量, 我现在想要所有.java文件的总和,不知道怎么搞? 谁来搞搞?
源代码:
package cn.itcast.zixi;
import java.io.File;
//题目C:递归遍历指定目录(你们写Java代码的目录)的文件绝对路径
/*
* 需求:在控制台输出D:\java0424所有的java文件的绝对路径。
*
* 思路:
* A:封装目录D:\java0424
* B:获取该目录下的所有文件或者文件夹的File[]数组。
* C:遍历File[]数组,获取到每一个File对象
* D:判断该File对数是否是
* 目录:返回B。(递归)
* 不是目录:
* 判断是否java结尾。
* 是:输出路径。
*/
public class BianLiDemo {
public static void main(String[] args) {
// 封装目录 D:\java0424
File file = new File("D:\\java0424");
showFiles(file);
}
private static void showFiles(File file) {
// 获取该目录下的所有文件或者文件夹
File[] fileArray = file.listFiles();
int count = 0;
// 遍历FIle[]数组,获取每一个File对象
if (fileArray == null) {
System.out.println("该目录不存在");
} else {
for (File f : fileArray) {
// 判断该file对数是否是目录
if (f.isDirectory()) {
showFiles(f);
} else {
// 文件
if (f.getName().endsWith(".java")) {
System.out.println(f.getAbsolutePath());
count++;//有.java就加一
}
}
}
}
//输出统计数量
System.out.println(count);
}
}
运行结果
我的文件
|
|