2013-09-05 142 views
4

我在windows機器上用nodejs fs.watch觀看文件夾很困難。當觀看的文件夾被刪除時它會引發異常。節點觀察EPERM何時刪除了觀察文件夾

 


    fs.watch('somedir', function (event, filename) { 
     console.log('event is: ' + event); 
     if (filename) { 
      console.log('filename provided: ' + filename); 
     } else { 
      console.log('filename not provided'); 
     } 
    }); 

 

當我刪除somedir時,它會引發異常而不是回調。

+0

EPERM意味着操作不被允許。檢查目錄權限。 – vinayr

+0

權限全部設置。這隻發生在文件夾被刪除之前沒有。 – sbspk

+0

我不認爲你應該刪除你正在看的一個文件夾,如果你想監視一個文件夾的刪除,看它的父母 –

回答

0

fs.watch返回一個fs.FSWatcher對象,可能會引發錯誤。

我剛剛測試過這個,它似乎錯誤事件是在文件夾被刪除時引發的。 這裏是處理它的代碼:

var fs = require('fs'); 

var path = "C:\\somedir"; 

var watcher = fs.watch(path, function (event, filename) { 
    console.log('event is: ' + event); 
    if (filename) { 
    console.log('filename provided: ' + filename); 
    } else { 
    console.log('filename not provided'); 
    } 
}); 


watcher.on('error', function(err) { 
    if (!fs.existsSync(path)) { 
    console.log('folder deleted'); 
    } 
});