关于windows检测文件变化遇到的问题?

happycomputer1 2010-12-13 09:16:25
主要是用系统API ReadDirectoryChangesW 投递监控目录请求,然后从完成端口获得文件变化通知,每次检测到文件变化的话,会调用ReadDirectoryChangesW 函数向系统注册事件;

问题是: 当某个目录不停有文件变化时,程序开始运行时,都能检测到目录当中的文件变化,然而程序运行一段时间,发现 向系统中投递了ReadDirectoryChangesW 请求,却在完成端口上怎么也获得不到文件变化的通知,不知道是什么问题??请高手们赐教



FILE_NOTIFY_INFORMATION* pNotify = (FILE_NOTIFY_INFORMATION*)pbuffer;

if (0 != ReadDirectoryChangesW(m_FolderPath,
pNotify,
2*1024,//pbuffer长度
FALSE,
FILE_NOTIFY_CHANGE_ATTRIBUTES|
FILE_NOTIFY_CHANGE_SIZE|
FILE_NOTIFY_CHANGE_FILE_NAME|
FILE_NOTIFY_CHANGE_LAST_WRITE,
NULL,
pbuffer,//overlapped结构
NULL))
{
//写成功日志;
return;
}
else
{
//写失败日志;
}
...全文
148 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yourtommy 2011-05-09
  • 打赏
  • 举报
回复
HANDLE hDir =
CreateFile( m_FolderPath, // lpFileName
FILE_LIST_DIRECTORY, // dwDesiredAccess
FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_SHARE_DELETE, // dwShareMode
NULL, // lpSecurityAttributes
OPEN_EXISTING, // dwCreationDisposition
FILE_FLAG_BACKUP_SEMANTICS, // dwFlagsAndAttributes
NULL ); // hTemplateFile

while (ReadDirectoryChangesW(hDir, buffer, 1024, TRUE,
FILE_NOTIFY_CHANGE_FILE_NAME, &BytesReturned, NULL, NULL))
{ ... }

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧