Node.js: проверьте, является ли файл символической ссылкой при переборе директории с помощью 'fs'

Supervisor - это пакет для Node.js, который отслеживает файлы в каталоге приложения на наличие изменений и перезагружает приложение в случае их изменения.

Этот скрипт интерпретирует символические ссылки как обычные файлы и выводит предупреждение. Я хотел бы раскошелиться на Supervisor, чтобы либо это можно было исправить полностью, либо чтобы было сделано более описательное предупреждение.

Как я могу использовать модуль Файловая система Node.js, чтобы определить, является ли данный файл действительно символической ссылкой?

1 ответ

Решение

Ты можешь использовать fs.lstat а затем позвоните statis.isSymbolicLink() на fs.Stats объект, который передается в ваш обратный вызов lstat.

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

Похоже, вы можете использовать isSymbolicLink()

const files = fs.readdirSync(dir, {encoding: 'utf8', withFileTypes: true});
files.forEach((file) => {
  if (file.isSymbolicLink()) {
    console.log('found symlink!');
  }
}
Другие вопросы по тегам