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);
});
ただし、ノードv0.8.0以降、fs.watchFileは使用されなくなりIOWatcher、統計ポーリングが使用されるようになりました。これは低速であり、リアルタイムの更新を提供しません。これは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);
});
});
fs.statコールバックで使用します。watchFile変更されたことを通知するだけで、変更の詳細は報告されません。