我有一个目录,其他一些程序在其中编写完成后我必须处理的 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)是在有新文件没有被写锁定时得到通知。