Javascript Node.js:在修改时确定文件大小
我正在Node.js中查看一个文件,并希望在每次更改时获得该文件的大小。如何使用Javascript Node.js:在修改时确定文件大小,javascript,node.js,filesystems,Javascript,Node.js,Filesystems,我正在Node.js中查看一个文件,并希望在每次更改时获得该文件的大小。如何使用fs.watchFile 这就是我目前正在做的: fs.watchFile(file, function(curr, prev) { // determine file size }); 在回调中使用fs.stat:watchFile只是让您知道它已更改,它不会报告更改的详细信息。我忽略了从fs.watchFile返回的变量curr和prev是fs.Stats的实例。这将是最佳解决方案: var fs = re
fs.watchFile
这就是我目前正在做的:
fs.watchFile(file, function(curr, prev) {
// determine file size
});
在回调中使用
fs.stat
:watchFile
只是让您知道它已更改,它不会报告更改的详细信息。我忽略了从fs.watchFile
返回的变量curr
和prev
是fs.Stats
的实例。这将是最佳解决方案:
var fs = require('fs');
fs.watchFile('some.file', function () {
fs.stat('some.file', function (err, stats) {
console.log(stats.size);
});
});
var fs = require('fs');
fs.watchFile('file', function (curr, prev) {
console.log(curr.size);
});
但是,从节点v0.8.0开始,fs.watchFile
不再使用IOWatcher
,现在使用stat轮询,这很慢,不提供实时更新。这一点在会议上进行了讨论
从节点:
不推荐iowatcher,fs:fix 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);
});
});