微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在nodejs中获得文件夹大小,并使用全局模式排除某些路径?

如何解决如何在nodejs中获得文件夹大小,并使用全局模式排除某些路径?

我想在归档以显示进度条之前计算归档文件的总大小。 我有一些文件夹是用全局模式定义的,不包含在其中。 如何使用全局过滤器获取文件夹大小?

解决方法

看来您不能使用正则表达式;您可以使用https://www.npmjs.com/package/glob并遍历与您的glob模式匹配的文件,并获取每个文件的大小。大致类似(我尚未测试此代码):

const fs = require('fs')
const glob = require('glob')

let totalSize = 0 // bytes
 
// options is optional
glob("**/*.js",options,function (er,files) {
  files.forEach(f => {
    totalSize += fs.statSync(f)
  })
})
,

在上述答案的帮助下,这是解决方案

const glob = require('glob');
const fs = require('fs');

function getFolderSizeByGlob(folder,{ ignorePattern: array }) {
    const filePaths = glob.sync('**',{ // "**" means you search on the whole folder
        cwd: folder,// folder path 
        ignore: array,// array of glob pattern strings
        absolute: true,// you have to set glob to return absolute path not only file names
    });
    let totalSize = 0;
    filePaths.forEach((file) => {
        console.log('file',file);
        const stat = fs.statSync(file);
        totalSize += stat.size;
    });
    return totalSize;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。