我为教育制作了带有间谍软件功能的程序,我需要在程序中知道文件系统何时更改文件,以及正在更改的文件。
我怎样才能在 C++ 中做到这一点?
您可能正在寻找 Win32 Directory Change Notifications。还有一个称为FileSystemWatcher的 .NET API ,它公开了相同的功能。
链接页面为订阅文件系统通知提供了一个很好的示例。要获得对文件系统更改的更多低级访问,您必须查看Change Journals。该 API 要复杂得多,因此第一个目录更改通知可能是您最好的起点。
为方便起见,Linux 内核为此提供了一个名为inotifiy的子系统。
在 Windows 上,查看SHChangeNotifyRegister()
. 它不仅告诉您发生了什么样的更改,而且还告诉您更改了哪些确切的文件。