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