如何在不触及该目录中的文件的情况下查找文件夹更改(使用Windows和C ++)

时间:2014-07-31 08:54:58

标签: c++ windows directory

我坚持这个,我有几个问题:

  1. 如何在不触摸文件的情况下检查文件夹是否已被修改? 创建/删除文件时创建/删除文件时会更改“上次修改时间”,但修改文件时不会更改(例如,当文件大小更改时)。

  2. 如果文件大小发生变化,则文件夹大小也会有所不同,但没有API可以在Windows中查找文件夹大小而不触及该文件。

    假设我给每个文件夹一些值,现在当它的大小改变时,默认值会改变吗? (一个预期的例子可能是,它的哈希值?) 或修改文件夹时Windows默认会改变什么? (除了它的大小。)

  3. 提前致谢。

1 个答案:

答案 0 :(得分:2)

如果要监视文件夹中的更改,可以使用api ReadDirectoryChangesW。但是,如果要离线检查,则需要扫描整个目录&检查每个文件修改日期,文件夹创建日期等。将其与上次扫描时间进行比较。

您可以在扫描时发现至少一次更改以节省时间时停止扫描。

如果您的应用具有管理员权限,则可以reading the NTFS change journal找到文件夹中的更改。