💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 递归打印所有子目录中的文件路径 编写一个方法用来打印指定目录中的文件路径,并进行方法的调用 要求:若指定的目录有子目录,那么把子目录中的文件路径也打印出来 步骤: 1. 指定要打印的目录File对象 2. 调用getFileAll()方法 2.1 获取指定目录中的所有File对象 2.2 遍历得到每一个File对象 2.3 判断当前File 对象是否是目录 判断结果为true,说明为目录,通过递归,再次调用步骤2的getFileAll()方法 判断结果为false,说明是文件,打印文件的路径 * 代码演示 ~~~ public class FileDemo2 { public static void main(String[] args) { File file = new File("d:\\test"); getFileAll(file); } //获取指定目录以及子目录中的所有的文件 public static void getFileAll(File file) { File[] files = file.listFiles(); //遍历当前目录下的所有文件和文件夹 for (File f : files) { //判断当前遍历到的是否为目录 if(f.isDirectory()){ //是目录,继续获取这个目录下的所有文件和文件夹 getFileAll(f); }else{ //不是目录,说明当前f就是文件,那么就打印出来 System.out.println(f); } } } } ~~~ # 搜索指定目录中的.java文件(含子目录) 需求:打印指定目录即所有子目录中的.java文件的文件路径 要求:编写一个方法用来打印指定目录中的.java文件路径,并进行方法的调用 若指定的目录有子目录,那么把子目录中的.java文件路径也打印出来 步骤: 1. 指定要打印的目录File对象 2. 调用getFileAll()方法,传入要打印的目录File对象 2.1 通过FilenameFilter过滤器获取指定目录中的所有.java类型的File对象 2.2 遍历得到每一个File对象 2.3 判断当前File 对象是否是目录 判断结果为true,说明为目录,通过递归,再次调用步骤2的getFileAll()方法 判断结果为false,说明是文件,打印文件的路径 实现代码步骤 * 测试类 ~~~ public class FileDemo4 { public static void main(String[] args) { File file = new File("d:\\test"); getFileAll(file); } //获取指定目录以及子目录中的所有的文件 public static void getFileAll(File file) { File[] files = file.listFiles(MyFileFilter()); //遍历当前目录下的所有文件和文件夹 for (File f : files) { //判断当前遍历到的是否为目录 if(f.isDirectory()){ //是目录,继续获取这个目录下的所有文件和文件夹 getFileAll(f); }else{ //不是目录,说明当前f就是文件,那么就打印出来 System.out.println(f); } } } } ~~~ * 自定类继承FilenameFilter过滤器接口 ~~~ //定义类实现文件名称FilenameFilter过滤器 class MyFileFilter implements FilenameFilter{ public boolean accept(File dir, String name) { return name.endsWith(".java"); } } ~~~