NodeJS fs.statSync(...).isDirectory() returns 对文件为真
NodeJS fs.statSync(...).isDirectory() returns true for file
正在尝试使用以下答案中的代码:
Returns 对我来说目录中的文件是正确的。
为了提供更多上下文,这里有一些基本代码来描述我的实现:
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 函数仍然 returns 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
接受一个参数 - 请参阅文档:
正在尝试使用以下答案中的代码:
Returns 对我来说目录中的文件是正确的。
为了提供更多上下文,这里有一些基本代码来描述我的实现:
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 函数仍然 returns 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
接受一个参数 - 请参阅文档: