diff --git a/javaSE-day08/src/com/inmind/digui02/Demo11.java b/javaSE-day08/src/com/inmind/digui02/Demo11.java new file mode 100644 index 0000000..df01a17 --- /dev/null +++ b/javaSE-day08/src/com/inmind/digui02/Demo11.java @@ -0,0 +1,45 @@ +package com.inmind.digui02; + +import java.io.File; + +/* +13.递归遍历文件夹的练习(重点) +需求:将D:\io_test里面的所有的子内容的名称都打印出来. + +在遍历文件夹操作中,文件中不断地创建文件夹所以普通的循环遍历得子内容的代码实现不了 +所以只能使用递归代码 + +遍历文件夹的递归代码: + 1.结束条件:如果是文件就打印结束 + 2.如果是文件夹就继续遍历,如果是文件就打印结束 + */ +public class Demo11 { + public static void main(String[] args) { + File file = new File("D:\\io_test"); + System.out.println(file.getName()); + //定义出一个方法,将指定文件夹中的内容遍历出来 + getFiles(file); + } + + //将指定文件夹中的内容遍历出来 + private static void getFiles(File file) { + //安全性验证 + if (file.exists() && file.isFile()) { + System.out.println(file.getName()); + return; + } + //这里file一定是文件夹 + File[] files = file.listFiles(); + //遍历数组 + for (File f : files) { + if (f.isDirectory()) { + System.out.println(f.getName()); + getFiles(f); + } else { + //是文件直接打印名字 + System.out.println(f.getName()); + } + } + } + +}