mj@home:~$

folder내의 모든 파일을 순회하고 싶다!

Files.walkFileTree(Path start, FileVisitor visitor)

  • Java 7에서 지원하는 기능
Files.walkFileTree(path, new FileVisitor<Path>() {
	@Override
    public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
        return FileVisitResult.CONTINUE;
    }

    @Override
    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
        return FileVisitResult.CONTINUE;
    }

    @Override
    public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
    }

    @Override
    public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
        return FileVisitResult.CONTINUE;
    }
});
메소드 설명
preVisitDirectory 폴더에 접근 했을 때 동작
visitFile 파일에 접근 했을 때 동작
visitFileFailed 파일 접근에 실패 했을 때 동작
postVisitDirectory 폴더에서 떠날때 동작

A/B/C depth로 구성되어 있는 directory A에 접근하게 되면

preA -> preB -> preC -> postC -> postB -> postA

순으로 실행되게 된다.


리턴값 설명
FileVisitResult.Continue 계속 탐색
FileVisitResult.Terminate 탐색 종료
FileVisitResult.SKIP_SUBTREE 하위 디렉토리 무시
FileVisitResult.SKIP_SIBLINGS 형제 파일 무시