標籤:sed bsp one 檔案 需要 繼承 case 時間 class
建立一個Watcher類來處理放在某個目錄下的檔案。然後可以用這個類建立一個工具,該工具可以監視目錄(watch目錄,將放到裡面的檔案名稱都改成小寫),並將檔案複製到一個單獨目錄(done目錄)中。
擴充事件發射器需要三步:
- 建立類的構造器;
- 繼承時間發射器的行為;
- 擴充這些行為。
代碼:
function Watcher(watchDir, processedDir) { this.watchDir = watchDir; this.processedDir = processedDir;}var events = require(‘events‘) , util = require(‘util‘);util.inherits(Watcher, events.EventEmitter);var fs = require(‘fs‘) , watchDir = ‘./watch‘ , processedDir = ‘./done‘;Watcher.prototype.watch = function () { var watcher = this; fs.readdir(this.watchDir, function (err, files) { if (err) throw err; for (var index in files) { watcher.emit(‘process‘, files[index]); } })};Watcher.prototype.start = function () { var watcher = this; fs.watchFile(watchDir, function () { watcher.watch(); });};var watcher = new Watcher(watchDir, processedDir);watcher.on(‘process‘, function process(file) { var watchFile = this.watchDir + ‘/‘ + file; var processedDir = this.processedDir + ‘/‘ + file.toLowerCase(); fs.rename(watchFile, processedDir, function (err) { if (err) throw err; });});watcher.start();
Node.js 擴充時間監聽器:檔案監視器