他のいくつかのプログラムが XML ファイルを書き込むディレクトリがあり、それらのファイルが完成したときに処理する必要があります。
これまでは、書き込みプログラムに最初に一時的な名前を使用し、最後にのみ".xml"
. 私のコードは次のようになります:
var fs = require("fs");
var handleFiles = function(){
fs.readdirSync(args.in).forEach(function(filename) {
if (filename.slice(-4)!=='.xml') return;
// handle XML file here
});
}
fs.watch(args.in, handleFiles);
しかし、私がサポートしなければならない新しいプログラムの中には、一時的な名前で書き込むことができないものがあります。
ファイルが効率的で信頼性の高いクロスブラウザー (Windows と Linux) で完全に書き込まれ、タイムアウトベースではない (つまり、機能するまで 10 ミリ秒ごとに名前の変更をテストしない) 方法でファイルを確実に処理するにはどうすればよいですか?
書き込み操作はワンショットなので、書き込みがロックされていない新しいファイルがある場合に通知する必要があると思います (Linux の場合、さらに重要なのは Windows の場合)。