首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在nodejs中获得文件夹大小,并排除带有全局模式的某些路径?

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

Stack Overflow用户
提问于 2020-09-19 13:16:43
回答 2查看 105关注 0票数 0

我想在存档之前计算存档文件的总大小,以显示进度条。我有一些文件夹,这是从拉链与定义了一个全局模式。如何使用全局过滤器获取文件夹大小?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-19 16:15:51

有了上面的答案,这就是解决方案

代码语言:javascript
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2020-09-19 15:13:41

看起来您不能使用正则表达式;您可以使用https://www.npmjs.com/package/glob遍历与您的glob模式匹配的文件,并获得每个文件的大小。大致类似于(我还没有测试过这段代码):

代码语言:javascript
复制
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)
  })
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63965470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档