如何知道使用winapi在Windows文件系统中更改的时间和文件

leb*_*323 7 c++ hook winapi

我制作带有间谍软件功能的程序用于教育,我需要在程序中知道文件系统何时更改文件,以及正在更改的文件.

我怎么能用C++做到这一点?

Sea*_*ine 10

您可能正在寻找Win32 目录更改通知.还有一个名为FileSystemWatcher的.NET API,它公开了相同的功能.

链接页面为订阅文件系统通知提供了一个很好的示例.要获得对文件系统更改的更低级别访问权限,您必须查看" 更改日记帐".该API非常复杂,因此第一个目录更改通知可能是您最好的起点.

为了提及它,Linux内核有一个称为inotifiy的子系统.

  • 它还允许您使用[`FILE_NOTIFY_CHANGE_LAST_WRITE`]查看该树中的文件更改(http://msdn.microsoft.com/en-us/library/windows/desktop/aa365465%28v=vs.85%29.aspx )旗帜.但是,您必须注意有关文件系统缓存的警告. (3认同)

Rem*_*eau 9

在Windows上,看看SHChangeNotifyRegister().它不仅告诉您发生了什么样的更改,而且还告诉您哪些确切的文件已更改.