У меня проблемы с увеличением переменной каждый раз, когда вызывается forEach
.
Цель состоит в том, чтобы получить общий размер каталога путем суммирования размера всех файлов внутри него. Проблема, которая у меня есть, состоит в том, чтобы правильно понять, куда я должен поместить переменные, чтобы вычислить правильный размер.
Действительно, на данный момент рассчитанный размер - это размер отдельных файлов, а не общий размер. Чего мне не хватает?
function walk(dir) {
let
n = 0,
size = 0,
totalSize = 0;
function walk(dir) {
fs.readdirSync(dir).forEach(file => {
let fullPath = path.join(dir, file);
totalSize += size; //Total size ; should it be here ?
++n;
console.log(size);
if (fs.lstatSync(fullPath).isDirectory()) {
--n;
walk(fullPath);
} else {
size = fs.statSync(fullPath).size; // Get size of file
listFiles.write(size + "\n"); // Write file size into copyList.xml
}
});
}
return walk(dir);
}
Токовый выход:
340747217
18607
283163346
25332
287107119
22240
281853153
219100996
204879388
210185951
26321
278784426
21899
22695
238503727
29866
266805926
21697
285134805