gpt4 book ai didi

node.js - NodeJS fs.statSync(...).isDirectory() 为文件返回 true

转载 作者:搜寻专家 更新时间:2023-11-01 00:21:27 24 4
gpt4 key购买 nike

尝试使用以下答案中的代码: https://stackoverflow.com/a/24594123/3951987

为我的目录中的文件返回 true。

为了提供更多上下文,这里有一些基本代码来描述我的实现:

getDirs = (a_path) => {
return fs.readdirSync(a_path)
.filter(file => fs.statSync(path.join(a_path, file)).isDirectory());
}

someCode = () => {
let some_path = path.resolve(process.cwd(), "example");
console.log(getDirs(some_path));
}

在我的项目中,我有:

example/
- test/
- manifest.json
index.js

上面描述的 getDirs 函数仍然以目录形式返回 manifest.json,即使应用了给定的过滤器。

还有其他人有这个吗?有什么想法吗?

附加信息

我已将 getDirs 函数修改为以下内容:

getDirs = (a_path) => {
console.log("getDirs a_path = "+a_path);
let dirs = fs.readdirSync(a_path);

for(let x = 0; x<dirs.length; x++){
let a_dir = path.resolve(a_path, dirs[x]);
console.log(dirs[x]);
console.log(fs.statSync(a_path, a_dir).isDirectory());
}
return dirs;
};

这个的输出是:

getDirs a_path = <pathtoproject>/example
test
true
manifest.json
true

最佳答案

改变:

console.log(fs.statSync(a_path, a_dir).isDirectory());

到:

console.log(fs.statSync(a_dir).isDirectory());

否则您声明的是 a_path,而不是 a_dir

fs.statSync 采用一个参数 - 请参阅文档:

关于node.js - NodeJS fs.statSync(...).isDirectory() 为文件返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42550620/

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