代码之家  ›  专栏  ›  技术社区  ›  d11wtq Vadim Baryshev

检测一个文件是否被修改,即使是在最后一秒,没有哈希?

  •  4
  • d11wtq Vadim Baryshev  · 技术社区  · 15 年前

    这适用于Mac,但也可能适用于Linux,所以我将其标记为这样。

    我在一个目录中递归,得到一个带有文件系统属性的树。

    每次窗口回到焦点时,我都会再次(一遍又一遍)重复。当我阅读目录时,我在寻找任何修改过的文件,并需要对它们执行操作。

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

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

    除了散列每个文件(这是不可行的)(在递归整个目录树时太慢)之外,我还可以使用HFS/HFS+提供的其他功能吗?像某种附加到文件的版本号/修改计数?我不担心,尽管在实际的用例中,当我的单元测试改变文件的速度时,文件的变化也很快。

    1 回复  |  直到 15 年前