首页
社区
课程
招聘
[讨论]ReadDirectoryChangesW函数问题
发表于: 2010-3-31 18:14 7159

[讨论]ReadDirectoryChangesW函数问题

2010-3-31 18:14
7159
最近要做一个文件夹监控的程序,于是在找到了ReadDirectoryChangesW这个函数,这个函数可以返回文件夹下变更的文件的文件名等信息,所以比FindFirstChangeNotification这个函数强多了,但是我发现这个ReadDirectoryChangesW函数也不完美,在对监控的文件夹同时删除、移入多个文件时,这个函数不能返回所有删除或移入的文件的信息,比如,对于监控的文件夹,同时选中多个文件,十个以上,执行删除,时这个函数返回的变更数据就不完整了(注:我设置的接收数据缓冲区大小为4KB,一般的情况是够用了,不至于缓冲区太小而不能容纳文件变更数据)。不知道各位大侠有没有更好方法。下边是调用代码:

        char buffer_[1024*32];
        DWORD receives_bytes_ = 0;
        memset(buffer_, 0, 1024*4);
        ReadDirectoryChangesW(directory_handler_,
                                                        buffer_,
                                                        1024*4,
                                                        false,
                                                        FILE_NOTIFY_CHANGE_FILE_NAME,
                                                        &receives_bytes_,
                                                        NULL,
                                                        0);

        print_change_file(buffer_);

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 412
活跃值: (30)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
fs filter
2010-3-31 20:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
to: ImHolly
file system filter啊,得到深入到内核级了,有没有别的方法啊,没有搞过这么深入的开发啊
2010-4-1 08:33
0
游客
登录 | 注册 方可回帖
返回
//