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

How to find folder changes without touching the files in that directory (Using Windows and C++)

本文关键字:文件夹 使用 c++ Windows 文件 情况下      更新时间:2023-10-16

我被这个困住了,我有几个问题:

  1. 如何在不碰文件的情况下检查文件夹是否被修改?

  2. 当文件被创建/删除时,当子文件夹被创建/删除时,"Last Modified"会改变,但当文件被修改时(例如,当它的大小改变时)不会改变。
  3. 如果文件大小发生变化,那么文件夹大小也会发生变化,但是没有API可以在不触及文件的情况下在Windows中找到文件夹大小。

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

如果您想监视一个文件夹的更改,您可以使用api ReadDirectoryChangesW。但是,如果您想脱机检查它,则需要扫描整个目录&检查每个文件的修改日期,文件夹创建日期等。与上次扫描时间比较。

当您发现至少有一个更改时,您可以停止扫描,以节省扫描时的时间。

如果你的应用程序有管理员权限,那么你可以通过读取NTFS更改日志来查找文件夹中的更改。