如何确定目录是否为符号链接

时间:2017-04-16 23:27:13

标签: node.js fs

我跑了fs.lstat并获得了目录的这些统计信息:

Stats {
  dev: 16777220,
  mode: 16877,
  nlink: 8,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 7366885,
  size: 272,
  blocks: 0,
  atime: 2017-04-16T23:18:17.000Z,
  mtime: 2017-04-16T23:14:49.000Z,
  ctime: 2017-04-16T23:14:49.000Z,
  birthtime: 2017-04-16T23:14:49.000Z }

如何确定此目录是否为符号链接?

1 个答案:

答案 0 :(得分:2)

我用

记录了stats对象
util.inspect(stats);

但是stats对象的方法在对象的__proto__上:

stats.isSymbolicLink()是使用

的号召

您希望使用fs.lstat()代替fs.stat(),因为前者不会遵循符号链接。如果您遵循符号链接,最终将进入实际目录,这意味着stats.isSymbolicLink()将始终返回false。但这并不是我们想要的。

所以答案是:

fs.lstat(<path>, function(err,stats){

     if(stats.isSymbolicLink()){
          // do your thing
      }

});