fs.watch через Node 0.5.9 на Mac OSX - PullRequest
       50

fs.watch через Node 0.5.9 на Mac OSX

5 голосов
/ 14 октября 2011

Я запускаю следующее на узле v0.5.9:

var fs = require("fs");
fs.watch("/Users/username/testingFsWatcher/",function(event,file) {
  console.dir(arguments);
});

Затем я делаю:

  • cd /Users/username/testingFsWatcher/
  • >file1 --> { '0': 'rename', '1': null }
  • mkdir new_folder -> { '0': 'rename', '1': null }
  • >new_folder/file2 -> событие не сработало / выход
  • touch file1 -> нетсобытие сработало / вывод
  • rm file1 -> { '0': 'rename', '1': null }

Две вещи, которые я заметил, кажутся неправильными: подкаталоги (new_folder) не отслеживаются и обновления / модификациипросматриваемые файлы не вызывают событие change.Просматривая код узла и тесты, кажется, что это возможно.

Итак, можно ли заставить fs.watch просматривать каталог и все его подкаталоги?Возможно ли хотя бы получить событие от модификации файла?Кроме того, из того, что я могу сказать, fs.watch поддерживается kqueue, который связан с eventid (в OSX), возможно ли получить это eventid?

Примечание: I 'Я специально использую fs.watch, а не fs.watchFile, потому что мне нужно просмотреть весь каталог (желательно также все его подкаталоги:).

Спасибо за помощь!

1 Ответ

0 голосов
/ 14 ноября 2011

Эта проблема больше не появляется в последней версии Node. Однако в fs.watch есть еще несколько ошибок, поэтому вы можете не использовать их до тех пор, пока они не будут устранены: https://github.com/joyent/node/issues/search?q=fs.watch

...