删除监视文件夹时的节点监视 EPERM
Posted
技术标签:
【中文标题】删除监视文件夹时的节点监视 EPERM【英文标题】:Node watch EPERM when the watched folder is deleted 【发布时间】:2013-09-09 04:59:20 【问题描述】:我很难在我的 Windows 机器上使用 nodejs fs.watch 观看文件夹。删除监视文件夹时会引发异常。
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 时,它会引发异常而不是回调。
【问题讨论】:
EPERM 表示不允许操作。检查目录权限。 权限都设置好了。这只发生在文件夹被删除之后而不是之前。 我认为您不应该删除正在观看的文件夹,如果要监视文件夹的删除,请观看其父文件夹 @WillemD'Haeseleer 为什么不呢?如果 Grunt 删除并重新生成它的内容会怎样。为什么你认为只是“他看着一个文件夹,去那里,右键单击并删除它”? 【参考方案1】: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');
);
【讨论】:
以上是关于删除监视文件夹时的节点监视 EPERM的主要内容,如果未能解决你的问题,请参考以下文章
EPERM 阻止的文件写入权限 - 删除然后写入新文件。节点.js
如何修复 react-scripts 启动时的“错误监视文件以进行更改:ECONNRESET”错误?