使用下面的方法,我们可以递归访问目录中所有的子目录
//-> 使用 IO
recurseFolder(folder);
//-> 使用 NIO
//注意:除非作为参数显式传递给Files.walkFileTree,否则不遍历符号链接
Files.walkFileTree(directory, new SimpleFileVisitor() {
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws
IOException {
System.out.println("d " + selectedPath.toAbsolutePath());
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path selectedPath, BasicFileAttributes attrs) throws
IOException {
System.out.println("f " + selectedPath.toAbsolutePath());
return FileVisitResult.CONTINUE;
}
});
private static void recurseFolder(File folder) {
for (File selectedFile : folder.listFiles()) {
System.out.println((selectedFile.isDirectory() ? "d" : "f") + " " + selectedFile.getAbsolutePath());
if (selectedFile.isDirectory()) {
//Note: Symbolic links are followed
recurseFolder(selectedFile);
}
}
}
日期:2020-06-02 22:15:23 来源:oir作者:oir
