5
我跑在節點v0.5.9如下:fs.watch通過節點0.5.9在Mac OSX
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
?
注意:我特別使用fs.watch
而不是fs.watchFile
,因爲我需要觀察整個目錄(最好是所有子目錄:)。
感謝您的幫助!
0.5.9不穩定。隨意添加一個更詳細的例子在github中的bug。您可以使用Isaac的「主管」 – malletjo
此問題在https://github.com/joyent/node/issues/1986中報告,並至少部分固定在0.6.0的穩定版本中。 –
感謝鏈接特雷弗!一旦我有機會升級到0.6.0 ... :) –