用递归的方法统计文件和文件夹的数目

  • Post author:
  • Post category:其他


package IO.dir;

import java.io.File;

//使用面向对象:统计文件夹大小
public class DirCount {
    //大小
    private long len;
    //文件夹路径
    private String path;
    //文件的个数
    private int fileSize;
    //文件夹的个数
    private int dirSize;//默认从0开始 包含自身文件夹
    //源
    private File src;
    public DirCount(String path){
        this.path=path;
        this.src=new File(path);
        count(this.src);
    }



    public static void main(String[] args) {
        DirCount dir=new DirCount("D:\\src\\IO");
        System.out.println(dir.getLen()+"--->"+dir.getFileSize()+"--->"+dir.getDirSize());
        DirCount dir2=new DirCount("D:\\src\\IO\\dir");
        System.out.println(dir2.getLen()+"--->"+dir2.getFileSize()+"--->"+dir2.getDirSize());
    }
    private void count(File src) {
        //如果是文件 获取大小
        if (null != src && src.exists()) {
            if (src.isFile()) {//大小
                len+=src.length();
                this.fileSize++;
            } else {//如果是文件夹 子孙级
                this.dirSize++;
                for(File s:src.listFiles()){
                    count(s);
                }
            }

        }
    }
    public int getFileSize() {
        return fileSize;
    }

    public void setFileSize(int fileSize) {
        this.fileSize = fileSize;
    }

    public int getDirSize() {
        return dirSize;
    }

    public void setDirSize(int dirSize) {
        this.dirSize = dirSize;
    }

    public long getLen() {
        return len;
    }

    public void setLen(long len) {
        this.len = len;
    }
}



版权声明:本文为courage_lizy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。