目录
1. 递归:方法自己调用自己
2. 在Java中实现递归打印文件夹
1.递归的分类:
2.注意事项:
3.递归的使用前提:
1.实现方法
/**
* 方法名:show01
* 返回值类型:void
* 参数列表:File file
*/
/private static void show01(File file) {
//打印被遍历的目录名称,打印文件夹
System.out.println(file);
//调用listFiles()方法,用File类型的数组来接收listFiles()方法的返回值
File[] files = file.listFiles();
//使用增强for遍历数组
for (File f : files) {
//关键if判断,如果是一个文件夹则会再从开头来一遍,除非不是文件夹才会else下打印
if (f.isDirectory()){
show01(f);
}else {
//打印文件,不是打印文件夹哦
System.out.println(f);
}
}
}
2.主方法
public static void main(String[] args) {
File f1 = new File("D:\\test");
show01(f1);
}
3.最终效果
D:\test
D:\test\a1
D:\test\a1\a1a1
D:\test\a1\a1a1\com
D:\test\a1\a1a1\com\secret.txt
D:\test\b2
D:\test\b2\b2.txt
D:\test\b2\well
D:\test\c3
D:\test\d4
D:\test\d4\wuwuwu.mp4
4.实现文件的搜索(匹配)
/**
* 方法名:show01
* 返回值类型:void
* 参数列表:File file
*/
private static void show01(File file) {
// System.out.println(file); //打印被遍历的目录名称
File[] files = file.listFiles();
for (File f : files) {
if (f.isDirectory()){
show01(f);
}else {
//关键判断,调用toString()方法再调用String类的endWith方法匹配文件的后缀
if (f.toString().endsWith(".txt")){
System.out.println(f);
}
}
}
}
}
5.文件搜索结果
D:\test\a1\a1a1\com\secret.txt
D:\test\b2\b2.txt
其他文章:
原文:https://www.cnblogs.com/liuhengzhi/p/14398164.html