美文网首页
递归文件夹查找指定文件

递归文件夹查找指定文件

作者: 蜗牛写java | 来源:发表于2021-08-16 17:42 被阅读0次

    递归文件夹查找指定文件

    • 方式一:java8新增api

      public static void findFilesByPath1(Path dirPath) {
          try {
              Files.walkFileTree(dirPath, new SimpleFileVisitor<Path>() {
                  @Override
                  public FileVisitResult visitFile(Path filePath, BasicFileAttributes attrs) {
                      if (filePath.toString().endsWith(".xml")) {
                          
                          System.out.println("find file = " + filePath.getFileName());
                          
                          return FileVisitResult.CONTINUE;
                      }
                      return FileVisitResult.SKIP_SUBTREE;
                  }
      
                  //失败,可能是文件没有访问权限等,直接过滤掉
                  @Override
                  public FileVisitResult visitFileFailed(Path filePath, IOException exception) throws IOException {
                      if (exception instanceof AccessDeniedException) {
                          return FileVisitResult.SKIP_SUBTREE;
                      }
                      return super.visitFileFailed(filePath, exception);
                  }
              });
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
      
    • 方式二:递归方式

      public static void findFilesByPath2(Path path) throws IOException {
      
              if (Files.isDirectory(path)) {
                  Files.list(path).forEach(newPath -> {
                      try {
                          findFilesByPath2(newPath);
                      } catch (IOException e) {
      //                    e.printStackTrace();
                      }
                  });
              } else {
                  if (path.toString().endsWith(".xml")) {
                      System.out.println("find file = " + path.getFileName());
                  }
              }
          }
      

      调用方式:

      findFilesByPath1(Paths.get("E:\\"));
      findFilesByPath2(Paths.get("E:\\"));
      

    相关文章

      网友评论

          本文标题:递归文件夹查找指定文件

          本文链接:https://www.haomeiwen.com/subject/npqvbltx.html