Ich versuche, ein node.js-Skript zu schreiben, das nach Änderungen in einem Verzeichnis von Dateien sucht und dann die geänderten Dateien druckt. Wie kann ich dieses Skript so ändern, dass es ein Verzeichnis (anstelle einer einzelnen Datei) überwacht und die Namen der Dateien im Verzeichnis druckt, wenn sie geändert werden?
var fs = require('fs'),
sys = require('sys');
var file = '/home/anderson/Desktop/fractal.png'; //this watches a file, but I want to watch a directory instead
fs.watchFile(file, function(curr, prev) {
alert("File was modified."); //is there some way to print the names of the files in the directory as they are modified?
});
inotify
, OSXFSWatch
und ich keine Ahnung von Windoze haben, aber ich bin sicher, Google könnte es Ihnen sagen.node-inotify
in meinem Projekt verwendet habe, bin ich schließlich zu gewechselt,node-inotify-plusplus
denn wer mag keine Abstraktionen? =)Antworten:
Versuchen Sie es mit Chokidar :
Chokidar löst einige der plattformübergreifenden Probleme beim Betrachten von Dateien mit nur fs.
quelle
awaitWriteFinish: true
? Es ist standardmäßig falsch./home/terabyte
. Nun, nicht rekursivWarum nicht einfach das Alte benutzen
fs.watch
? Es ist ziemlich einfach.Weitere Informationen und Details zu den Optionen param finden Sie unter Node fs Docs
quelle
fs.watch()
ist etwas klobig, und Sie müssen Ihre Won-Debounce-Implementierung erstellen.versuchen Sie Hund :
Es wird ausgeführt, sobald die Datei geändert wurde
quelle