biegnę na następujące v0.5.9 Node:fs.watch poprzez węzeł 0.5.9 na Mac OSX
var fs = require("fs");
fs.watch("/Users/username/testingFsWatcher/",function(event,file) {
console.dir(arguments);
});
I wtedy zrobić:
cd /Users/username/testingFsWatcher/
>file1
- >{ '0': 'rename', '1': null }
mkdir new_folder
->{ '0': 'rename', '1': null }
>new_folder/file2
-> no zdarzenie wyzwalane/wyjściatouch file1
-> no zdarzenie wyzwalane/wyjściarm file1
->{ '0': 'rename', '1': null }
dwie rzeczy zauważyłem, że wydają się nieprawidłowe: podkatalogów (new_folder
) nie są oglądane a aktualizacje/modyfikacje oglądanych plików nie wyzwalają zdarzenia change
. Patrząc na kod węzła i testy wydaje się, że powinny być możliwe.
Czy jest zatem możliwe, aby fs.watch
obejrzał katalog i wszystkie jego podkatalogi? Czy jest co najmniej możliwe, aby uzyskać zdarzenie z modyfikacji pliku? Ponadto, z tego co wiem, fs.watch
jest wspierany przez kqueue
, który jest powiązany z eventid
(w systemie OSX), czy możliwe jest uzyskanie tego eventid
?
Uwaga: Używam konkretnie fs.watch
, a nie fs.watchFile
, ponieważ muszę obejrzeć cały katalog (najlepiej wszystkie jego podkatalogi :).
Dzięki za pomoc!
0.5.9 nie jest stabilny. Możesz dodać błąd w github z bardziej szczegółowym przykładem. Można użyć "Nadzorcy" przez Isaaca – malletjo
Ten problem jest zgłaszany na stronie https://github.com/joyent/node/issues/1986 i jest przynajmniej częściowo naprawiony w wersji stabilnej 0.6.0. –
Dzięki za link Trevor! Postaram się opublikować moje wyniki w tym wątku, gdy tylko będę miał szansę na uaktualnienie do 0.6.0 ... :) –