使用Java 8在目录和子目录中查找文件

Kay*_*ayV 6 java filesystems directory nio java-8

如何在Java 8中实现一个算法,给定一个起始目录和一个文件名,用于搜索给定目录中的文件或嵌套不超过5个级别的任何子目录.

例如,考虑以下目录结构:

Folder 1
   Folder 2
      Folder 3
        Folder 4
            Folder 5
                Folder 6
                    nfiles.txt....
                MyFile.txt
                xfile.txt
            filesInFolder4....
        filesInFolder3...
   .....
Run Code Online (Sandbox Code Playgroud)

该算法应搜索文件夹中包含文件的文件,并报告是否存在具有给定文件名的文件?

如何使用Java 8做到这一点?

Ant*_*iuc 12

请看一下Files.find方法.

try (Stream<Path> stream = Files.find(Paths.get("Folder 1"), 5,
            (path, attr) -> path.getFileName().toString().equals("Myfile.txt") )) {
        System.out.println(stream.findAny().isPresent());
} catch (IOException e) {
        e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)