我不知道我的代码中是否存在一些故障。我正在观看新json文件的目录。 fs.watch查看文件但在日志中记录三个条目。我似乎无法弄明白为什么。
我的代码
'use strict';
var fs = require('fs');
fs.watch('C:/Users/PCAdmin/Downloads/jsonin', function (event, filename) {
console.log('event is: ' + event);
if (filename) {
console.log('filename provided: ' + filename);
} else {
console.log('filename not provided');
}
});
输出:
LOG ENTRIES
event is: rename
filename provided: 23456.json
event is: change
filename provided: 23456.json
event is: change
filename provided: 23456.json
答案 0 :(得分:0)
经过大量研究后,看来fs.watch正在拿起ReadDirectoryChangesW FILE_NOTIFY_CHANGE_FILE_NAME,FILE_NOTIFY_CHANGE_LAST_WRITE,FILE_NOTIFY_CHANGE_ATTRIBUTES
为了缓解这个问题,我添加了一个额外的if语句来限制重命名的响应,这将捕获正在添加的文件名
'use strict';
var fs = require('fs');
fs.watch('C:/Users/PCAdmin/Downloads/jsonin', function (event, filename) {
if (event ==='rename') {
console.log('event is: ' + event);
if (filename) {
console.log('filename provided: ' + filename);
return;
} else {
console.log('filename not provided');
return;
}
}
});