在网上搜索了很久,看到实现监控目录变化主要有3种方法,一个是FindFirstChangeNotification, 一个是 ReadDirectoryChangesW,还有一个就是用未公开的API:SHChangeNotifyRegister.在这3中方法中FindFirstChangeNotification,我没有使用,应该你必须自己去判断目录中到底那些文件发生了变化,ReadDirectoryChangesW用了,它必须在unicode下使用,虽然它能告诉你变化的文件,但是经常漏掉,只能告诉你其中的一个,通常就是最后一个,比如我copy了多个文件到指定目录下,它只能告诉你最后copy的那个,不能将所有的都通知你。最后我没办法又试了一下SHChangeNotifyRegister,这个函数比ReadDirectoryChangesW要好些,但是它是否有限制,只能通知一定数量的文件(几个了),如果多了,就告诉你目录内容发生更新了,具体的文件名还需要你自己去一个一个查。
我想问问有没有方法可以不去轮循比较目录内容而知道具体新增加的文件名?