我需要监视特定文件集(或一个文件)的更改,并让 Windows 向我的应用程序报告。 大多数文件可能都在同一目录中,但我更喜欢按文件监控系统。
我找到了这个例子 http://codewee.com/view.php?idx=20 但该示例仅监控特殊的桌面文件夹。
首先调用 SHGetSpecialFolderLocation,然后使用结果 LPITEMIDLIST 在 SHChangeNotifyRegister 函数中(通过 SHChangeNotifyEntry 结构)
我无法将其泛化到任意目录。 MS Docs 说 SHGetSpecialFolderLocation 无论如何以后都不会被支持, 应改用 SHGetFolderLocation。
但同样,SHGetFolderLocation 已被弃用,甚至没有提到它没有字符串/路径 参数。
是否有任何方便的函数可以获取目录路径或完整的文件名 并生成 LPITEMIDLIST,然后可以将其粘贴到 SHChangeNotifyRegister 中?
最佳答案
ReadDirectoryChangesW
, ReadDirectoryChangesExW
SHParseDisplayName
可用于将文件路径转换为 PIDL
,以便与 SHChangeNotifyRegister
关于c++ - 如何通过 Win API 监控文件变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54024915/