Node.js 擴充時間監聽器:檔案監視器

來源:互聯網
上載者:User

標籤:sed   bsp   one   檔案   需要   繼承   case   時間   class   

建立一個Watcher類來處理放在某個目錄下的檔案。然後可以用這個類建立一個工具,該工具可以監視目錄(watch目錄,將放到裡面的檔案名稱都改成小寫),並將檔案複製到一個單獨目錄(done目錄)中。

擴充事件發射器需要三步:

  1. 建立類的構造器;
  2. 繼承時間發射器的行為;
  3. 擴充這些行為。

代碼:

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 擴充時間監聽器:檔案監視器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.