nodejs: перебор каталога и получение значения SHA256 для каждого файла - PullRequest
0 голосов
/ 30 марта 2020

Цель: перебрать все файлы в каталоге X и получить значение SHA256 для каждого файла.

Кажется, что приведенный ниже код почти работает; он захватывает значение SHA256 для ОДНОГО файла, но не выполнено на следующей итерации. Я немного погуглил, но из-за моего ограниченного понимания узла я не могу найти ответ.

Спекуляция: после первой итерации; код больше не может найти полный путь?

Ошибка: [Error: ENOENT: no such file or directory, open 'example.txt'] { errno: -2, code: 'ENOENT', syscall: 'open', path: 'example.txt' }

example.txt является вторым файлом в моем каталоге, код смог получить значение для первый файл.

const fs = require('fs').promises
const hasha = require('hasha');
const path = require('path')

async function getAllFiles(pathToFiles){
    let files = await fs.readdir(pathToFiles);
    for (const file of files) {
        const fullPath = path.join(pathToFiles, file)
        const hash = await hasha.fromFile(file.toString(), {algorithm: 'sha256'});
        console.log(hash);   

    }
}
getAllFiles('.').then(() => {
    console.log("all done");
}).catch(err => {
    console.log(err);
});

1 Ответ

0 голосов
/ 31 марта 2020

Выяснил решение: получить абсолютный путь для каждого файла и передать этот путь в const ha sh сработало.

...