2012-09-04 5 views
4

Node.js에서 파일을보고 있는데 변경 될 때마다 파일 크기를 가져 오려고합니다. fs.watchFile으로 어떻게이 작업을 수행 할 수 있습니까?Node.js : 수정시 파일 크기 확인

fs.watchFile(file, function(curr, prev) { 
    // determine file size 
}); 

답변

6

나는 fs.watchFile에서 반환 된 변수 currprevfs.Stats의 인스턴스라고 놓쳤다.

var fs = require('fs'); 

fs.watchFile('file', function (curr, prev) { 
    console.log(curr.size); 
}); 

그러나, 노드 v0.8.0의로, fs.watchFile 더 이상 IOWatcher를 사용하고, 지금은 느리고 실시간 업데이트를 제공하지 않습니다 합계 폴링을 사용 :이 최적의 솔루션이 될 것입니다. 이 내용은 GitHub에서 논의되었습니다.

이상 사용 iowatcher, FS : 노드 changelog에서

: 수정 fs.watchFile() (벤 Noordhuis는)

대신, 대체 솔루션은 지금 fs.watchfs.stat입니다

var fs = require('fs'); 

fs.watch('file', function (curr, prev) { 
    fs.stat('file', function (err, stats) { 
    console.log(stats.size); 
    }); 
}); 
2

사용 fs.stat을 콜백 :

이 내가 현재 뭘하는지입니다 watchFile 그냥 당신이 변화를 알 수 있습니다, 그것은 변경 사항을보고하지 않습니다.

13
var fs = require('fs'); 

fs.watchFile('some.file', function() { 
    fs.stat('some.file', function (err, stats) { 
     console.log(stats.size); 
    }); 
});