监控watch目录中的.h和.cpp后缀的文件,移动到process目录中。
var events = require('events');
var util = require('util');
var fs = require('fs');
var path = require('path');
function Watcher(watchDir, processDir) {
this.watchDir = watchDir;
this.processDir = processDir;
}
util.inherits(Watcher, events.EventEmitter);
Watcher.prototype.watch = function() {
var self = this;
fs.readdir(this.watchDir, function(err, files) {
if (err) {
console.log(err);
} else {
for (var file of files) {
self.emit('process', file);
}
}
});
}
Watcher.prototype.start = function() {
var self = this;
fs.watchFile(this.watchDir, function() {
self.watch();
});
}
var watcher = new Watcher('./watch', './process');
watcher.on('process', function(file) {
var watchFile = this.watchDir + '/' + file;
var processedFile = this.processDir + '/' + file;
console.log(watchFile);
console.log(processedFile)
var extname = path.extname(watchFile);
if (extname == '.cpp' || extname == '.h') {
fs.rename(watchFile, processedFile, function(err) {
console.log(err);
});
}
});
watcher.start();