gpt4 book ai didi

node.js - 使用 fs.readdir 和 fs.statSync 返回 ENOENT, no such file or directory 错误

转载 作者:搜寻专家 更新时间:2023-10-31 23:35:33 24 4
gpt4 key购买 nike

这个有效:

    var promise = new Future(),
dirs = [],
stat;


Fs.readdir(Root + p, function(error, files){
_.each(files, function(file) {
//stat = Fs.statSync(file);
//if ( stat.isDirectory() ) {
dirs.push(file);
//}
});

promise.return(dirs);
});

这不是:

    var promise = new Future(),
dirs = [],
stat;


Fs.readdir(Root + p, function(error, files){
_.each(files, function(file) {
stat = Fs.statSync(file);
if ( stat.isDirectory() ) {
dirs.push(file);
}
});

promise.return(dirs);
});

导致“错误:ENOENT,没有这样的文件或目录‘fonts’”,但“fonts”是树中的第一个目录,它确实存在。

我肯定漏掉了一些愚蠢的东西。我正在尝试仅返回文件夹/目录名称。

当我在做的时候,有谁知道如何返回所有级别的目录吗?

例如,结果可能是:

[
"fonts",
"fonts/font-awesome",
"images",
"images/somepath",
"images/somepath/anotherpath"
]

这是我的下一个目标,在弄清楚我做错了什么之后。

最佳答案

readdir 将为您提供文件夹中条目的名称,而不是整个路径。这将起作用:

stat = Fs.statSync(Root + p + "/" + file);

完整代码:

var promise = new Future(),
dirs = [],
stat,
fullPath;


Fs.readdir(Root + p, function(error, files){
_.each(files, function(file) {
fullPath = Root + p + "/" + file;
stat = Fs.statSync(fullPath);
if ( stat.isDirectory() ) {
dirs.push(fullPath);
}
});

promise.return(dirs);
});

关于node.js - 使用 fs.readdir 和 fs.statSync 返回 ENOENT, no such file or directory 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26265270/

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