zoukankan      html  css  js  c++  java
  • node.js获取目录内所有文件大小总和

    /**
     * 获取指定目录内所有文件大小总和  单位为字节
     * @param dir
     * @param callback
     */
    function getdirsize(dir,callback){
        var size = 0;
        fs.stat(dir,function(err,stats){
            if(err) return callback(err);//如果出错
            if(stats.isFile()) return callback(null,stats.size);//如果是文件

            fs.readdir(dir,function(err,files){//如果是目录
                if(err) return callback(err);//如果遍历目录出错
                if(files.length==0) return callback(null,0);//如果目录是空的

                var count = files.length;//哨兵变量
                for(var i = 0;i<files.length;i++){
                    getdirsize(path.join(dir,files[i]),function(err,_size){
                        if(err) return callback(err);
                        size+=_size;
                        if(--count<=0){//如果目录中所有文件(或目录)都遍历完成
                            callback(null,size);
                        }
                    });
                }
            });
        });
    }

    var walk = function(dir, done) {
        //var results = [];
        var size = 0;
        fs.readdir(dir, function(err, list) {
            if (err) return done(err);
            var pending = list.length;
            if (!pending) return done(null, size);
            list.forEach(function(file) {
                file = path.resolve(dir, file);
                fs.stat(file, function(err, stat) {
                    if (stat && stat.isDirectory()) {
                        walk(file, function(err, res) {
                            size = size+res;
                            if (!--pending) done(null, size);
                        });
                    } else {
                        size = size+stat.size;
                        if (!--pending) done(null, size);
                    }
                });
            });
        });
    };

  • 相关阅读:
    第三章第四章总结
    java学习2打架代码编写
    windows server 2008 远程桌面(授权、普通用户登录)
    Windows组建网络服务 ——WEB服务器的组建与架构
    windows server 2008 站点系列
    将 Ubuntu 加入到 Windows 2003 AD域
    Windows Server 2008组策略管理与配置
    AD用户设置系列
    利用windows 2003实现服务器群集的搭建与架设
    server2008 跨进新的平台(三)高端的备份还原工具
  • 原文地址:https://www.cnblogs.com/cymhappy/p/4563548.html
Copyright © 2011-2022 走看看