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

时间:2014-08-23 16:08:50

标签: node.js

我有以下代码......

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

with path ==“/ Volumes / Macintosh HD”我得到了

  

寻找/ Volumes / Macintosh HD false

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

为什么这不会显示为目录?

1 个答案:

答案 0 :(得分:3)

这是因为/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!');
}