检测文件是否被修改,即使在最后一秒内,也没有散列?

d11*_*wtq 4 linux filesystems macos file-io

这适用于Mac,但它也可能适用于Linux,所以我已经标记了它.

我正在通过目录递归并获取具有文件系统属性的树.

然后每当窗口重新聚焦时,我再次(再次)再次递归.当我读取目录时,我正在寻找任何已修改并需要对其进行操作的文件.

想到的显而易见的事情是比较每个文件的修改日期,但是我的单元测试证明这不可靠,因为测试本身在不到一秒的时间内执行...结果是我的测试更改的文件被视为未经修改(因为它只精确到1秒).

到目前为止,我的修复方法还是比较了文件大小,但这样做的风险是,如果文件被更改,并且结果大小相同,它也将无法检测到.

远非散列每个文件,这是不可行的(在递归整个目录树时太慢),我还可以使用HFS/HFS +提供的其他东西吗?喜欢附加到文件的某种版本号/修改计数?我担心没有,虽然实际上文件的边缘情况变化与我的单元测试一样快,但是在实际用例中不太可能是一个问题.