当显示该文件的节点fs不是目录时

我有以下代码…

console.log("looking for "+ path+" "+fs.lstatSync(path).isDirectory()); 

与path==“/卷/ Macintosh HD”我得到

寻找/卷/ Macintosh HD错误

我也尝试转换为“/ Volumes / Macintosh \ HD”,但它甚至找不到该文件。

为什么这不是作为一个目录显示?

这是因为/Volumes/Macintosh HD实际上是/一个符号链接。 这实际上不是一个目录。

你可以这样做:

 console.log("looking for "+ path+" symlink: "+fs.lstatSync(path).isSymbolicLink()); // outputs: looking for /Volumes/Macintosh HD symlink: true 

如果你想在你的逻辑中集成这个来检查符号链接是否指向一个目录,你可以尝试如下所示:

 var path = '/Volumes/Macintosh HD'; if (fs.lstatSync(path).isSymbolicLink()) { // replace 'path' with the real path if it's a symlink path = fs.readlinkSync(path); } if (fs.lstatSync(path).isDirectory()) { console.log('it is a directory!'); }