2013-09-05 102 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'); 
    } 
});