使用fs.readdir和fs.statSync返回ENOENT,没有这样的文件或目录错误
这工作:
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/font-awesome", "images", "images/somepath", "images/somepath/anotherpath" ]
这是我的下一个目标,弄清楚我做错了什么。
我感谢帮助!
readdir
会给你的文件夹中的条目的名称,而不是整个path。 这将工作:
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); });