练习:
遍历打印多级目录,遍历C:abc文件夹,即abc文件夹的子文件夹,只要.java结尾的文件
C:\abc
C:\abc\a
C:\abc\a\a.java
C:\abc\a\a.txt
C:\abc\abc.java
C:\abc\abc.txt
C:\abc\b
C:\abc\b\b.java
C:\abc\b\b.txt
详细代码:
package demo24file便利案例文件搜索;
/*
练习:
遍历打印多级目录,遍历C:abc文件夹,即abc文件夹的子文件夹,只要.java结尾的文件
C:\abc
C:\abc\a
C:\abc\a\a.java
C:\abc\a\a.txt
C:\abc\abc.java
C:\abc\abc.txt
C:\abc\b
C:\abc\b\b.java
C:\abc\b\b.txt
*/
import java.io.File;
public class DemoRecurison {
public static void main(String[] args) {
File file=new File("C:\\abc");
getAllFile(file);
}
private static void getAllFile(File dir){
//System.out.println(dir);//打印被遍历的目录名称
File[] files=dir.listFiles();
for (File f:files){
if (f.isDirectory()){//f是一个文件夹,则遍历整个文件夹
getAllFile(f);//递归调用自身
}else{
/* //1.只要.java文件,把File对象转换为字符串对象,以下3种都可以
//String name=f.getName();abc.java
//String parh=f.get.Path();C:\abc\abc.java
String s=f.toString();//C:\abc\abc.java
//把字符串转换为小写
s=s.toLowerCase();
//2.调用String类中的方法endsWith判断字符串是否以.java结尾
boolean b=s.endsWith(".java");
//3如果是.以.java结尾的文件,则输出
if (b){
System.out.println(f);//如果是一个文件则直接打印
}*/
//简写形式
if (f.getName().toLowerCase().endsWith(".java")){
System.out.println(f);
}
}
}
}
}
结果: