SimpleFileVisitor — 단순 파일 방문자

SimpleFileVisitor — 단순 파일 방문자

모든 파일을 방문하고 I/O 오류를 다시 던지는 기본 동작을 가진 단순한 파일 방문자예요. FileVisitor 인터페이스의 각 메서드를 기본 구현해 두어, 필요한 메서드만 오버라이드해서 쓸 수 있게 해줘요. 이 클래스의 메서드는 그 일반 계약에 따라 오버라이드할 수 있어요.

출처: Java API Reference

본문

  • protected SimpleFileVisitor() — 이 클래스의 새 인스턴스를 초기화해요.
  • public FileVisitResult preVisitDirectory(T dir, BasicFileAttributes attrs) throws IOException — 디렉터리의 항목들을 방문하기 전에 그 디렉터리에 대해 호출돼요. 오버라이드하지 않으면 CONTINUE를 반환해요.
  • public FileVisitResult visitFile(T file, BasicFileAttributes attrs) throws IOException — 디렉터리에 있는 파일에 대해 호출돼요. 오버라이드하지 않으면 CONTINUE를 반환해요.
  • public FileVisitResult visitFileFailed(T file, IOException exc) throws IOException — 방문하지 못한 파일에 대해 호출돼요. 오버라이드하지 않으면 파일 방문을 막은 I/O 예외를 다시 던져요.
  • public FileVisitResult postVisitDirectory(T dir, IOException exc) throws IOException — 디렉터리의 항목들과 그 모든 하위 항목들을 방문한 뒤 호출돼요. 오버라이드하지 않으면 디렉터리 순회가 I/O 예외 없이 완료될 때 CONTINUE를, 그렇지 않으면 예외를 다시 던져요.
Files.walkFileTree(start, new SimpleFileVisitor<Path>() {{
    @Override
    public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) {{
        System.out.println("DIR: " + dir);
        return FileVisitResult.CONTINUE;
    }}
    @Override
    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {{
        System.out.println("FILE: " + file);
        return FileVisitResult.CONTINUE;
    }}
}});

더 알아보기 (Learn more)