Node.js:使用'fs'迭代目录时检查文件是否是符号链接

jam*_*ack 9 linux fs node.js node-supervisor

Supervisor是Node.js的一个程序包,它监视应用程序目录中的文件以进行修改,并在发生修改时重新加载应用程序.

此脚本将符号链接解释为常规文件并注销警告.我想分叉Supervisor,以便完全修复或者产生更具描述性的警告.

如何使用Node.js的文件系统模块来确定给定文件是否真的是符号链接?

Joh*_*yHK 23

您可以使用fs.lstat然后调用传递给lstat回调statis.isSymbolicLink()fs.Stats对象.

fs.lstat('myfilename', function(err, stats) {
    console.log(stats.isSymbolicLink());
});
Run Code Online (Sandbox Code Playgroud)


Bor*_*hik 5

好像你可以使用isSymbolicLink()

const files = fs.readdirSync(dir, {encoding: 'utf8', withFileTypes: true});
files.forEach((file) => {
  if (file.isSymbolicLink()) {
    console.log('found symlink!');
  }
}
Run Code Online (Sandbox Code Playgroud)