Tag: filemtime

检测文件系统的mtime分辨率

如何从Node.js中找出系统的mtime分辨率? 为什么我问 在Node.js中, fs.watch有时会发出重复的change事件。 为了避免采取多余的行动,通常使用这样的代码(来自CoffeeScript的coffee实用程序): if event is 'change' fs.stat source, (err, stats) -> throw err if err return if stats.size is prevStats.size and stats.mtime.getTime() is prevStats.mtime.getTime() prevStats = stats … 这里的问题是:在OS X下,由于底层的HFS +文件系统, mtime的分辨率只有1秒。 也就是说, mtime.getTime()值的forms 1322068921000 所以每当两秒钟之内发生两次更改,就有可能第二次更改不会影响文件的mtime 。 由于stats.size检查,这只是一个问题,如果第二个更改没有影响文件的大小。 不过,这是一个问题。 一个可靠的解决scheme是通过间隔时间“去抖” change事件; 即在OS X下,当发生change时,我会等待1秒钟来执行操作(从而将所有可能具有相同mtime更改事件组合在一起)。 但是我希望在每个文件系统下尽可能缩短时间,而不是采用最大的共同点。