现在要做的是监听一个目录下的文件系统,如果该目录下产生新文件或修改文件就copy到另一个forder下,本想用文件访问时间来做,但文件数太多(有50万个以上,而且还在不断增加中,每天会增加1000个左右),要遍历所有文件的访问时间与固定时间相比较实在是太慢了(我遍历一遍要50分钟以上,且文件数目还在不断的增长中)
所以请问大家有什么好的建议我自己想用抓windows消息的方法来做,可是不知道文件产生和修改的时候会产生什么系统消息,还有消息机制可靠吗?我用一个别人写的控件做(daEngine)经常会漏掉文件求救!

解决方案 »

  1.   

    利用微软未公开函数SHChangeNotifyRegister来进行目录的监视,它可以监视目录下的文件是否被创建、修改、删除,也可以监视文件夹
      

  2.   

    一个 Windows的文件目录操作即时监视程序,可以监视在Explore中的重命名、新建、删除文件或目录;改变文件关联;插入、取出CD和添加、删除网络共享都可以被该程序记录下来:http://www.hkedu.sh.cn/XTSchool/updata/hzweb/HZityy/HZxszp/VBcnxt/Code/shc.zip
      

  3.   

    监视一个文件夹里是否有文件增加,删除:http://www.dapha.net/down/download.asp?downid=1&id=151
      

  4.   

    http://www.ourfly.com/bbs/dispbbs.asp?boardID=5&ID=152
    函数SHChangeNotifyRegister实现文件目录操作
    利用Windows的未公开函数SHChangeNotifyRegister实现文件目录操作即时监视程序可以监视在Explore中的重命名、新建、删除文件或目录;改变文件关联;插入、取出CD和添加删除网络共享都可以被该程序记录下来。
      

  5.   

    同意楼上,写shell 扩展另一个办法是用ReadDirectoryChangesW但是只能在nt下工作