我正在查看 Node.js 中的文件,并希望在每次文件更改时获取文件的大小。如何做到这一点fs.watchFile
?
这就是我目前正在做的事情:
fs.watchFile(file, function(curr, prev) {
// determine file size
});
我正在查看 Node.js 中的文件,并希望在每次文件更改时获取文件的大小。如何做到这一点fs.watchFile
?
这就是我目前正在做的事情:
fs.watchFile(file, function(curr, prev) {
// determine file size
});
var fs = require('fs');
fs.watchFile('some.file', function () {
fs.stat('some.file', function (err, stats) {
console.log(stats.size);
});
});
我错过了返回curr
的变量是. 这将是最佳解决方案:prev
fs.watchFile
fs.Stats
var fs = require('fs');
fs.watchFile('file', function (curr, prev) {
console.log(curr.size);
});
但是,从 Node v0.8.0 开始,fs.watchFile
不再使用IOWatcher
,现在使用 stat 轮询,速度慢且不提供实时更新。这在GitHub 上进行了讨论。
从节点更改日志:
弃用 iowatcher、fs:修复 fs.watchFile() (Ben Noordhuis)
相反,另一种解决方案是现在fs.watch
和fs.stat
:
var fs = require('fs');
fs.watch('file', function (curr, prev) {
fs.stat('file', function (err, stats) {
console.log(stats.size);
});
});
Use fs.stat
in the callback: watchFile
just lets you know it changed, it doesn't report the change details.