如何在排除某些具有 glob 模式的路径的情况下获取 nodejs 中的文件夹大小?
How to get a folder size in nodejs with excluding certain paths with glob pattern?
我想在归档前计算归档文件的总大小以显示进度条。
我有一些从压缩中排除的文件夹是用 glob 模式定义的。
如何使用 glob 过滤器获取文件夹大小?
看来您不能使用正则表达式;您可以使用 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;
}
我想在归档前计算归档文件的总大小以显示进度条。 我有一些从压缩中排除的文件夹是用 glob 模式定义的。 如何使用 glob 过滤器获取文件夹大小?
看来您不能使用正则表达式;您可以使用 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;
}