下面列出了java.nio.file.FileVisitResult#CONTINUE 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private FileVisitResult visitPath(Path p) throws IOException {
BasicFileAttributes attrs;
try {
attrs = getAttributes(p);
ensureNoLoops(p, attrs);
} catch (IOException ioe) {
return visitor.visitFileFailed(p, ioe);
}
if (attrs.isDirectory()) {
FileVisitResult result = visitor.preVisitDirectory(p, attrs);
if (result == FileVisitResult.CONTINUE) {
state.add(new DirWalkState(p, attrs, false));
}
return result;
} else {
return visitor.visitFile(p, attrs);
}
}
@Test
public void testWalkRelativeFileTreeWhenPathIsAFile() throws IOException {
FakeProjectFilesystem filesystem = new FakeProjectFilesystem();
filesystem.touch(Paths.get("A.txt"));
List<Path> filesVisited = new ArrayList<>();
FileVisitor<Path> fileVisitor =
new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) {
filesVisited.add(path);
return FileVisitResult.CONTINUE;
}
};
filesystem.walkRelativeFileTree(Paths.get("A.txt"), fileVisitor);
// Despite the awkward name, "contains" implies an exact match.
assertThat(filesVisited, contains(Paths.get("A.txt")));
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs){
if (file.toString().toLowerCase().endsWith(".java")) {
this.javaFiles.add(file.toString());
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
// 空フォルダチェック
try (DirectoryStream<Path> ds = Files.newDirectoryStream(dir)) {
if (ds.iterator().hasNext()) {
return FileVisitResult.CONTINUE;
}
}
// 空フォルダなら削除
Files.deleteIfExists(dir);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException
{
if (isAcceptable(file))
{
size.addAndGet(attrs.size());
visited.add(file.toFile().getName());
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path path, BasicFileAttributes attr) {
File file = path.toFile();
if (file.getName().endsWith(HTML_EXTENSION)
&& asString(file).contains("Unresolved")) {
throw new IllegalStateException(
"File [" + file + "] contains a tag that wasn't resolved properly");
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
Path sourcePath = baseSourceDir.relativize(file);
Path targetPath = baseTargetDir.resolve(sourcePath);
if (sourcePath.toString().matches(".*(\\.json|\\.schema)$")) {
String json = schemaDereferencer.dereferencedSchema(file, targetPath).encodePrettily();
try (PrintWriter printWriter = new PrintWriter(targetPath.toFile())) {
printWriter.println(json);
}
} else {
Files.copy(file, targetPath, StandardCopyOption.REPLACE_EXISTING);
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(final Path dir, final IOException e) throws IOException {
if (e != null) {
logger.warn("I/O exception on " + dir, e);
}
deleteEmptyDirectory(dir);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (attrs.isRegularFile()) { // no symlinks, pipes, or device nodes please
fsync(file);
fileCount++;
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult preVisitDirectory(final Path dir, final BasicFileAttributes attrs) throws IOException {
final Path dirToCreate = targetDirectory.resolve(sourceDirectory.relativize(dir));
if (Files.notExists(dirToCreate)) {
Files.createDirectories(dirToCreate);
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if(file.getFileName().toString().endsWith(".go")) {
containsGoSources = true;
return FileVisitResult.TERMINATE;
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(final Path file, final BasicFileAttributes attrs) throws IOException {
if (file.getFileName().endsWith("dummy"))
return FileVisitResult.CONTINUE;
Path tgtPath = targetPath.resolve(sourcePath.relativize(file));
if (tgtPath.toFile().exists())
return FileVisitResult.CONTINUE;
Files.copy(file, tgtPath);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
paths.add(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
Files.delete(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
Files.delete(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
++level;
return FileVisitResult.CONTINUE;
}
/**
* {@inheritDoc}
*/
@Override
public FileVisitResult preVisitDirectory(final Path dir, final BasicFileAttributes attrs) throws IOException {
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
files.add(file);
return FileVisitResult.CONTINUE;
}
/**
* {@inheritDoc}
*/
@Override
public FileVisitResult postVisitDirectory(final Path dir, final IOException exc) throws IOException {
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
return FileVisitResult.CONTINUE;
}