gpt4 book ai didi

javascript - nodejs lstat 找不到文件

转载 作者:行者123 更新时间:2023-11-30 19:56:13 25 4
gpt4 key购买 nike

我递归地列出文件,但是当我尝试列出子目录中的所有文件时出现以下错误。

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 与 .git 文件夹中名为“config”的文件有关。出于某种我不明白的原因,它说它不存在,但它确实存在。有什么提示可以帮助我理解和解决问题吗?

完整的控制台日志:

enter image description here

最佳答案

您的第一直觉确实是正确的。该错误清楚地表明您正在尝试从当前工作目录而不是 .git 目录读取文件 config

确保您在文件前加上路径,如下所示:

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

(注意:通常您会在文件顶部 const path = require('path');。我建议这样做,但请务必重命名您的函数参数 path - filePath 是一个很好的替代品。)

关于javascript - nodejs lstat 找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53961301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com