递归调用 文件搜索(案例)

42 阅读1分钟
  public static void main(String[] args) {
        lookUp(new File("D:/"), "QQ.exe");
    }

    public static void lookUp(File file, String name) {
       if (file != null && file.isDirectory()){ //判断搜索的位置是否是文件夹,判断是否为空
           File[] files = file.listFiles();//获取当前目录下的以及文件对象
           if(files != null && files.length > 0){ //判断文件对象是否是空或者没有文件
               for (File file1 : files) { //遍历文件对象
                   if(file1.isFile()){ //判断是否是文件
                       if (file1.getName().equals(name)){ //判断是否是需要搜索的文件
                           System.out.println(file1.getAbsolutePath());//输出该文件的绝对地址
                           Runtime r = Runtime.getRuntime();
                           try {
                               r.exec(file1.getAbsolutePath());
                           } catch (IOException e) {
                               throw new RuntimeException(e);
                           }
                       }
                   }else {
                       lookUp(file1,name);//如果不是文件继续递归调用该方法
                   }
               }
           }
       }else {
           System.out.println("....");//不是文件夹,或者文件夹为空
       }
    }

}