
package com.logicbig.example.files;
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.HashSet;
public class WalkFileTreeExample {
public static void main(String... args) throws IOException {
String pathString = "C:\\temp";
Files.walkFileTree(Paths.get(pathString),new HashSet<>(), 2, new FileVisitor<Path>() {
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
throws IOException {
System.out.println("preVisitDirectory: " + dir);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException {
System.out.println("visitFile: " + file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc)
throws IOException {
System.out.println("visitFileFailed: " + file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc)
throws IOException {
System.out.println("postVisitDirectory: " + dir);
return FileVisitResult.CONTINUE;
}
});
}
}
Output
preVisitDirectory: C:\temp
visitFile: C:\temp\copy-file-test.txt
visitFile: C:\temp\my-file1034191516296691039.txt
visitFile: C:\temp\my-file17448932312801228390.txt
visitFile: C:\temp\my-file5278968784931578089.txt
visitFile: C:\temp\my-file8612592247244588518.txt
preVisitDirectory: C:\temp\settings
visitFile: C:\temp\settings\settings.xml
visitFile: C:\temp\settings\sub-settings
postVisitDirectory: C:\temp\settings
postVisitDirectory: C:\temp