一、walkFileTree方法遍历文件夹和文件夹下的文件
-
示例代码
package com.example.nettytest.nio.day2; import java.io.IOException; import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; import java.util.concurrent.atomic.AtomicInteger; /** * @description: * @author: xz * @create: 2022-07-31 10:31 */ public class TestWalkFileTree { public static void main(String[] args) throws IOException { foreachDirectory(); } /** *遍历件夹和文件夹下的文件 * */ private static void foreachDirectory() throws IOException { //计数器:文件夹数量 AtomicInteger dirCount = new AtomicInteger(); //计数器:文件数量 AtomicInteger fileCount = new AtomicInteger(); //walkFileTree遍历文件树 Files.walkFileTree(Paths.get("D:\\Java\\jdk1.8.0_161"),new SimpleFileVisitor(){ //重写进入文件夹之前方法 @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { System.out.println("进入文件夹===>"+dir); dirCount.incrementAndGet(); return super.preVisitDirectory(dir, attrs); } //重写遍历文件方法 @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { System.out.println("文件路径===>"+file); fileCount.incrementAndGet(); return super.visitFile(file, attrs); } }); System.out.println("文件夹数量:" +dirCount); System.out.println("文件数量:" +fileCount); } }
-
输出结果如下: