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文件
--已经找到目标文件--

  

posted @ 2019-08-06 11:36  嵌入式实操  阅读(353)  评论(0编辑  收藏  举报