Node.js:使用“fs”迭代目录时检查文件是不是为符号链接

Posted

技术标签:

【中文标题】Node.js:使用“fs”迭代目录时检查文件是不是为符号链接【英文标题】:Node.js: Check if file is an symbolic link when iterating over directory with 'fs'Node.js:使用“fs”迭代目录时检查文件是否为符号链接 【发布时间】:2012-07-02 07:46:14 【问题描述】:

Supervisor 是 Node.js 的一个包,它监视应用目录中的文件是否有修改,并在发生修改时重新加载应用。

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

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

【问题讨论】:

【参考方案1】:

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

fs.lstat('myfilename', function(err, stats) 
    console.log(stats.isSymbolicLink());
);

【讨论】:

【参考方案2】:

看来你可以使用isSymbolicLink()

const files = fs.readdirSync(dir, encoding: 'utf8', withFileTypes: true);
files.forEach((file) => 
  if (file.isSymbolicLink()) 
    console.log('found symlink!');
  

【讨论】:

以上是关于Node.js:使用“fs”迭代目录时检查文件是不是为符号链接的主要内容,如果未能解决你的问题,请参考以下文章

Node.js文件系统(fs模块的使用)

Node.js检查文件是否存在

Node.js 中 fs.renameSync 报错

node.js 使用fs模块对系统文件及目录进行读写操作

在 node.js 中使用 fs 覆盖文件的最佳方法是啥

Node.js学习之路05——fs文件系统之文件的写入和读取