nodejs lstat не находит файл - PullRequest
0 голосов
/ 28 декабря 2018

Я рекурсивно перечисляю файлы, но получаю следующую ошибку при попытке вывести список всех файлов из подкаталога.

Error: ENOENT: no such file or directory, lstat 'config'
    at Object.lstatSync (fs.js:838:3)
    at files.forEach.file (D:\merkletrool\dataAccess.js:13:32)
    at Array.forEach (<anonymous>)
    at fs.readdir (D:\merkletrool\dataAccess.js:12:15)
    at FSReqWrap.oncomplete (fs.js:141:20)

Код следующий:

function listAllFiles(path) {
    console.log("directory path " + path);
    fs.readdir(path, (err, files) => {
        if (err) {
                console.log(err);
        }
        files.forEach(file => {
            let file_stat = fs.lstatSync(file);
            if (file_stat.isFile()) {
                list_files.push(file);
                console.log("is file");
            } else if (file_stat.isDirectory()) {
                console.log(file + " here");
                listAllFiles(path + file + "\\");
            }
        });
    });
}

Сначала я подумал, что путь неправильный, поэтому я добавил

path + file + "\\"

Но проблема не в этом.Ошибка SEEMS связана с файлом с именем «config» в папке .git.По причине, которую я не понимаю, она говорит, что ее не существует, но она существует.Любой совет, который поможет мне понять и исправить?

Полный журнал консоли:

enter image description here

1 Ответ

0 голосов
/ 28 декабря 2018

Ваш первый инстинкт был действительно верным.Ошибка ясно показывает, что вы пытаетесь прочитать файл config из текущего рабочего каталога, а не из каталога .git.

Убедитесь, что вы префиксируете свои файлы с путем, например:

files.forEach(file => {
    let file_stat = fs.lstatSync(require('path').join(path, file));

(Примечание: обычно вы бы const path = require('path'); находились в начале вашего файла. Я рекомендую это, но затем обязательно переименуйте аргумент функции path - filePath - хорошая замена.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...