JAVA 查找某个目录是否存在,如果存在,打印出来
阅读原文时间:2023年07月12日阅读:1

  题目:现有如下目录结构,查找结构中是否存在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("您给定的是一个文档");  
    }  
}  

}