learning java FileVisitor 遍丽文件及路径
import java.io.IOException; import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; public class FileVisitorTest { public static void main(String[] args) throws Exception { // 遍历g:\publish\codes\15目录下的所有文件和子目录 Files.walkFileTree(Paths.get("e:", "我的光盘", "codes", "15"), new SimpleFileVisitor<Path>() { // 访问文件时候触发该方法 @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { System.out.println("正在访问" + file + "文件"); // 找到了FileInputStreamTest.java文件 if (file.endsWith("FileInputStreamTest.java")) { System.out.println("--已经找到目标文件--"); return FileVisitResult.TERMINATE; } return FileVisitResult.CONTINUE; } // 开始访问目录时触发该方法 @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { System.out.println("正在访问:" + dir + " 路径"); return FileVisitResult.CONTINUE; } }); } }
output:
正在访问:e:\我的光盘\codes\15 路径 正在访问:e:\我的光盘\codes\15\15.1 路径 正在访问e:\我的光盘\codes\15\15.1\1546017388045文件 正在访问e:\我的光盘\codes\15\15.1\FilenameFilterTest.class文件 正在访问e:\我的光盘\codes\15\15.1\FilenameFilterTest.java文件 正在访问e:\我的光盘\codes\15\15.1\FileTest.class文件 正在访问e:\我的光盘\codes\15\15.1\FileTest.java文件 正在访问:e:\我的光盘\codes\15\15.10 路径 正在访问e:\我的光盘\codes\15\15.10\a.txt文件 正在访问e:\我的光盘\codes\15\15.10\AttributeViewTest.class文件 正在访问e:\我的光盘\codes\15\15.10\AttributeViewTest.java文件 正在访问e:\我的光盘\codes\15\15.10\FilesTest.class文件 正在访问e:\我的光盘\codes\15\15.10\FilesTest.java文件 正在访问e:\我的光盘\codes\15\15.10\FileVisitorTest$1.class文件 正在访问e:\我的光盘\codes\15\15.10\FileVisitorTest.class文件 正在访问e:\我的光盘\codes\15\15.10\FileVisitorTest.java文件 正在访问e:\我的光盘\codes\15\15.10\PathTest.class文件 正在访问e:\我的光盘\codes\15\15.10\PathTest.java文件 正在访问e:\我的光盘\codes\15\15.10\pome.txt文件 正在访问e:\我的光盘\codes\15\15.10\WatchServiceTest.class文件 正在访问e:\我的光盘\codes\15\15.10\WatchServiceTest.java文件 正在访问:e:\我的光盘\codes\15\15.3 路径 正在访问e:\我的光盘\codes\15\15.3\FileInputStreamTest.class文件 正在访问e:\我的光盘\codes\15\15.3\FileInputStreamTest.java文件 --已经找到目标文件--