VC++文件监控之ReadDirectoryChangesW-创新互联
我这里只介绍采用ReadDirectoryChangesW对文件目录实施监控
创新互联建站专注于丰台网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供丰台营销型网站建设,丰台网站制作、丰台网页设计、丰台网站官网定制、重庆小程序开发公司服务,打造丰台网络公司原创品牌,更为您提供丰台网站排名全网营销落地服务。关键代码
CfgdsgDlg * dlg = (CfgdsgDlg*)lparam; HANDLE hDir; char notify[1024]; DWORD cbBytes,i; char AnsiChar[3]; wchar_t UnicodeChar[2]; CString path; FILE_NOTIFY_INFORMATION *pnotify=(FILE_NOTIFY_INFORMATION *)notify; FILE_NOTIFY_INFORMATION *tmp; GetCurrentDirectory(MAX_PATH,path.GetBuffer(MAX_PATH+1)); hDir = CreateFile( path, FILE_LIST_DIRECTORY, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, NULL); if (hDir == INVALID_HANDLE_VALUE) { dlg->m_edit.ReplaceSel("hDir:INVALID_HANDLE_VALUE\r\n"); return 0; } while (TRUE) { if(ReadDirectoryChangesW(hDir, ¬ify, sizeof(notify), FALSE, FILE_NOTIFY_CHANGE_FILE_NAME| FILE_NOTIFY_CHANGE_LAST_WRITE, &cbBytes, NULL, NULL)) { tmp = pnotify; switch(tmp->Action) { case FILE_ACTION_ADDED: dlg->m_edit.ReplaceSel("Directory/File added (添加文件)- \r\n"); break; case FILE_ACTION_REMOVED: dlg->m_edit.ReplaceSel("Directory/File removed (删除文件)- \r\n"); break; case FILE_ACTION_MODIFIED: dlg->m_edit.ReplaceSel("Directory/File modified (修改文件内容)- \r\n"); break; case FILE_ACTION_RENAMED_OLD_NAME: dlg->m_edit.ReplaceSel("Directory/File old name (修改文件名字)- \r\n"); break; case FILE_ACTION_RENAMED_NEW_NAME: dlg->m_edit.ReplaceSel("Directory/File new name - \r\n"); break; default: break; } } }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文题目:VC++文件监控之ReadDirectoryChangesW-创新互联
网页URL:http://azwzsj.com/article/dscedc.html