JAVA 查找某个目录是否存在,如果存在,打印出来

题目:现有如下目录结构,查找结构中是否存在Directory11,如果存在,打印出来

  |---test
  |---|---Directory1
  |---|---|---Directory11
  |---|---|---|---Directory11
  |---|---|---|---File111.txt
  |---|---Directory2
  |---|---|---Directory22
  |---|---|---|---Directory11
  |---|---|---|---File222.txt
  |---|---Directory3

思路:

  • 先判断给定的目录是否是一个目录,如果不是,则提示退出
  • 获取到该目录下的子目录数组
  • 如果子目录是一个文件,则跳出本轮循环,开始判断下一个元素
  • 如果子目录是目录,判断是否名称为Directory11,如果是,输出其绝对路径
  • 调用本方法继续判断子目录下面的子目录

代码如下:

/**
 * 查找给定目录下是否存在名为Directory11的文件夹
 * @author LGB
 *
 */
public class FileDemo01 {
    public static void main(String[] args) {
        findFile(new File("D:/test"));
    }

    public static void findFile(File file) {
        if (file.isDirectory()) { // 确保给定的对象是一个目录
            File[] fileList = file.listFiles(); // 获取到该目录下的子目录数组
            for (int i = 0; i < fileList.length; i++) {
                if (fileList[i].isFile()) { // 如果子目录是一个文件,则跳出本轮循环,开始判断下一个
                    break;
                } else {
                    if (fileList[i].getName().equals("Directory11")) { // 如果子目录是目录,判断是否名称为Directory11,如果是,输出其绝对路径
                        System.out.println(fileList[i].getAbsolutePath());
                    }
                    findFile(fileList[i]); // 调用本方法继续判断子目录下面的子目录
                }
            }
        } else {
            System.out.println("您给定的是一个文档");
        }
    }
}