文件测试实际情况如上:
package cn.itcast.demo443;
import java.io.File;
import java.io.FilenameFilter;
public class MyJavaFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
//判断获取的是目录,直接返回true,让其继续遍历
if(dir.isDirectory()){
return true;
}else{
//endsWith区分大小写
//toLowerCase() 方法用于将大写字符转换为小写
//return dir.getName().toLowerCase().endsWith(".java");
return name.endsWith(".java");
}
}
}
package cn.itcast.demo443;
import java.io.File;
/*
* 遍历目录,获取
*/
public class FileDemo {
public static void main(String[] args) {
getAllJava(new File("e:\\demo"));
}
/*
* 定义方法,实现遍历指定目录
* 获取目录中所有的.java文件
*/
public static void getAllJava(File dir){
//调用File对象方法listFiles()获取,加入过滤器
File[] fileArr = dir.listFiles(new MyJavaFilter());
for(File f : fileArr){
//对f路径,判断是不是文件夹
if(f.isDirectory()){
//递归进入文件夹遍历
getAllJava(f);
}else{
System.out.println(f);
}
}
}
}
调试过程:
package cn.itcast.demo4;
import java.io.File;
import java.io.FileFilter;
public class MyJavaFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
//判断获取的是目录,直接返回true,让其继续遍历
if(pathname.isDirectory()){
return true;
}else{
//endsWith区分大小写
//toLowerCase() 方法用于将大写字符转换为小写
return pathname.getName().toLowerCase().endsWith(".java");
}
}
}
package cn.itcast.demo4;
import java.io.File;
/*
* 遍历目录,获取
*/
public class FileDemo {
public static void main(String[] args) {
getAllJava(new File("e:\\demo"));
}
/*
* 定义方法,实现遍历指定目录
* 获取目录中所有的.java文件
*/
public static void getAllJava(File dir){
//调用File对象方法listFiles()获取,加入过滤器
File[] fileArr = dir.listFiles(new MyJavaFilter());
for(File f : fileArr){
//对f路径,判断是不是文件夹
if(f.isDirectory()){
//递归进入文件夹遍历
getAllJava(f);
}else{
System.out.println(f);
}
}
}
}
调式结果: