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:publishcodes15目录下的所有文件和子目录
        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:我的光盘codes15 路径
正在访问:e:我的光盘codes1515.1 路径
正在访问e:我的光盘codes1515.11546017388045文件
正在访问e:我的光盘codes1515.1FilenameFilterTest.class文件
正在访问e:我的光盘codes1515.1FilenameFilterTest.java文件
正在访问e:我的光盘codes1515.1FileTest.class文件
正在访问e:我的光盘codes1515.1FileTest.java文件
正在访问:e:我的光盘codes1515.10 路径
正在访问e:我的光盘codes1515.10a.txt文件
正在访问e:我的光盘codes1515.10AttributeViewTest.class文件
正在访问e:我的光盘codes1515.10AttributeViewTest.java文件
正在访问e:我的光盘codes1515.10FilesTest.class文件
正在访问e:我的光盘codes1515.10FilesTest.java文件
正在访问e:我的光盘codes1515.10FileVisitorTest$1.class文件
正在访问e:我的光盘codes1515.10FileVisitorTest.class文件
正在访问e:我的光盘codes1515.10FileVisitorTest.java文件
正在访问e:我的光盘codes1515.10PathTest.class文件
正在访问e:我的光盘codes1515.10PathTest.java文件
正在访问e:我的光盘codes1515.10pome.txt文件
正在访问e:我的光盘codes1515.10WatchServiceTest.class文件
正在访问e:我的光盘codes1515.10WatchServiceTest.java文件
正在访问:e:我的光盘codes1515.3 路径
正在访问e:我的光盘codes1515.3FileInputStreamTest.class文件
正在访问e:我的光盘codes1515.3FileInputStreamTest.java文件
--已经找到目标文件--

  

原文地址:https://www.cnblogs.com/lianghong881018/p/11307949.html