package util; import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Path; import java.nio.file.PathMatcher; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; import java.util.List; /** * A file visitor that collects all files whose path are matched by the supplied * PathMatcher object. */ public class CollectingFileVisitor extends SimpleFileVisitor<Path> { /****************************************************************************/ public final List<Path> files = new ArrayList<>(); /****************************************************************************/ private final PathMatcher pathMatcher; /****************************************************************************/ public CollectingFileVisitor(final PathMatcher pathMatcher) { this.pathMatcher = pathMatcher; } /****************************************************************************/ @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { if (pathMatcher.matches(file)) { files.add(file); } return FileVisitResult.CONTINUE; } /****************************************************************************/ @Override public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException { return FileVisitResult.CONTINUE; } }