シンプルなファイル ビジターを初めて使用していますが、ドキュメントはやや使いにくいようです。基本的に、ディレクトリツリーにアクセスして、フォルダーの数、ファイルの総数、アクセスしたtxt、csvなどのさまざまなファイルの数をログに記録したいと考えています。
これは私の FileVistor です。
public class FileVisitor extends SimpleFileVisitor<Path>{
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
System.out.println("About to scan " + dir);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
System.out.println("Scanned " + dir);
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 {
System.err.println(exc.getMessage());
return FileVisitResult.CONTINUE;
}
}
これが私の呼び出しコードです。
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
Path path = Paths.get(str);
FileVisitor visitor = new FileVisitor();
Files.walkFileTree(path, visitor);
どんな助けでも感謝します。