我需要监视特定文件集(或只是一个文件)的更改,并让Windows报告给我的应用程序.很可能,大多数文件都在同一个目录中,但我更喜欢每个文件的监控系统.
我找到了这个示例http://codewee.com/view.php?idx=20 但该示例仅监视特殊的Desktop文件夹.
首先调用SHGetSpecialFolderLocation,然后在SHChangeNotifyRegister函数中使用结果LPITEMIDLIST (通过SHChangeNotifyEntry结构)
我无法将它概括为任意目录.MS Docs表示将来不支持SHGetSpecialFolderLocation, 应该使用SHGetFolderLocation.
但同样,SHGetFolderLocation已被弃用,甚至没有提及它没有字符串/路径参数.
是否有任何方便的功能,它采用目录路径或完整的文件名,并生成LPITEMIDLIST,然后可以将其粘贴到SHChangeNotifyRegister?
FindFirstChangeNotification 等.
ReadDirectoryChangesW, ReadDirectoryChangesExW
SHParseDisplayName可用于将文件路径转换为PIDL,以供使用SHChangeNotifyRegister