使用Netty遍历文件


使用Netty遍历文件

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * 遍历一个路径下的所有文件及文件夹,并且统计它们的数量
 * */
public class WalkFileTre {
    public static void main(String[] args) throws IOException {
        AtomicInteger fileCount = new AtomicInteger();
        AtomicInteger dirCount = new AtomicInteger();

        Files.walkFileTree(Paths.get("D:\\Java学习笔记"),new SimpleFileVisitor<Path>(){
            /**
             * 删除文件夹逻辑:
             *      1、遍历文件时删除文件
             *      2、退出文件夹时删除文件夹
             * */

            //进入文件夹之前
            @Override
            public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
                System.out.println("dir-->"+dir);
                //文件夹数量统计
                dirCount.incrementAndGet(); //数量+1
                return super.preVisitDirectory(dir, attrs);
            }

            // 文件夹内的文件
            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                System.out.println("file-->"+file);
                //文件数量统计
                fileCount.incrementAndGet(); //数量+1
                return super.visitFile(file, attrs);
            }

            // 退出文件夹
            @Override
            public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
                return super.postVisitDirectory(dir, exc);
            }

        });

        System.out.println("fileCount: "+fileCount+"   dirCount: "+dirCount);
    }

}

文章作者: wmg
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wmg !
  目录