如何监听一个文件下某类文件的产生?
我用一个程序,要对某个文件夹下的某种类型的文件做处理,该文件夹下的这类文件是程序动态产生的,我想做的事是:监听这个文件夹,如果有新的文件出现,就处理,没有就等待,请问,如何实现这种机制?能否可以通过专门开一个监听线程来实现?
非常感谢
问题点数:0、回复次数:3Top
1 楼krh2001(边城浪子)回复于 2005-06-02 22:27:26 得分 0
可以对这种事件进行挂构, 使用一个未公开的API 来实现. 当文件夹发生变化时, 系统会调用 挂构函数来通知你.
http://www.zahui.com/html/1/3732.htm
Top
2 楼qrlvls( 空 气 )回复于 2005-06-02 22:49:17 得分 0
也可以参考FileMon的源码Top
3 楼idAnts(此广告位招租)回复于 2005-06-03 17:00:55 得分 0
一个简单方法是用FindFirstChangeNotification/FindNextChangeNotification
做之前先遍历一边目录下的文件,记录下来,用上面的函数,当发现有变化时,开线程再遍历一边目录,对比发现有哪些文件变化,比较容易实现,就是比较烦。好处是可以循环的来监视
另外还有一个就是用ReadDirectoryChangesW,来监视一个目录,缺点是不能循环操作,你必须自己来反复使用ReadDirectoryChangesW,好处是可以直接得到变化的文件名字。
第3个方法是使用SHChangeNotifyRegister注册一个自定义消息,文件变化了你会收到消息。这个用起来比较麻烦,复杂一些了。可以直接知道变化的文件名字。Top




