Post

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

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

Files.walkFileTree(Path start, FileVisitor visitor)

  • Java 7에서 지원하는 기능
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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형제 파일 무시
This post is licensed under CC BY 4.0 by the author.