怎么使用visual studio2022监视目录中的文件变更
导读:本文共2323.5字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:这篇“怎么使用visualstudio2022监视目录中的文件变更”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用visualstudio2022监视目录中的文件变更”文章吧。监视目录中的文件变更因为编译出来的exe被删除(猜测被删除)了,所以就想验证下是不是,代码如下://参... ...
目录
(为您整理了一些要点),点击可以直达。这篇“怎么使用visualstudio2022监视目录中的文件变更”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用visualstudio2022监视目录中的文件变更”文章吧。
监视目录中的文件变更
因为编译出来的exe被删除(猜测被删除)了,所以就想验证下是不是,代码如下:
//参考:https://zhuanlan.zhihu.com/p/493850984//监控文件变化.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include<Windows.h>#include<winbase.h>#include<fileapi.h>#include<iostream>#include<string>#include<ctime>#include<array>//宽字节字符串转多字节字符串voidW2C(wchar_t*pwszSrc,intiSrcLen,char*pszDest,intiDestLen){::RtlZeroMemory(pszDest,iDestLen);//宽字节字符串转多字节字符串::WideCharToMultiByte(CP_ACP,0,pwszSrc,(iSrcLen/2),pszDest,iDestLen,NULL,NULL);}intmain(){boolwatch_state{};HANDLEhDirectory{CreateFileA("D:\\C++\\OpenSSL_test2_3\\Debug\\",FILE_LIST_DIRECTORY,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,NULL,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,NULL)};BYTE*pBuf=newBYTE[2048];if(NULL==pBuf){std::cout<<"内存申请失败!"<<std::endl;return2;}FILE_NOTIFY_INFORMATION*pFileNotifyInfo=(FILE_NOTIFY_INFORMATION*)pBuf;DWORDin_MemorySize{2048};LPDWORDin_out_BytesReturned{newDWORD{}};charszTemp[MAX_PATH]={0};while(watch_state=ReadDirectoryChangesW(hDirectory,pFileNotifyInfo,in_MemorySize,true,FILE_NOTIFY_CHANGE_FILE_NAME|FILE_NOTIFY_CHANGE_DIR_NAME|FILE_NOTIFY_CHANGE_LAST_WRITE,in_out_BytesReturned,nullptr,NULL)){W2C((wchar_t*)(&pFileNotifyInfo->FileName),pFileNotifyInfo->FileNameLength,szTemp,MAX_PATH);time_tnow=time(0);if(GetLastError()==ERROR_INVALID_FUNCTION){std::cout<<"系统不支持!"<<std::endl;}elseif(watch_state==0){std::cout<<"监控失败!"<<std::endl;}elseif(GetLastError()==ERROR_NOTIFY_ENUM_DIR){std::cout<<"内存溢出!"<<std::endl;}else{if(pFileNotifyInfo->Action==FILE_ACTION_ADDED){std::cout<<ctime(&now)<<"新增文件:"<<szTemp<<std::endl;}elseif(pFileNotifyInfo->Action==FILE_ACTION_REMOVED){std::cout<<ctime(&now)<<"删除文件:"<<szTemp<<std::endl;}elseif(pFileNotifyInfo->Action==FILE_ACTION_MODIFIED){std::cout<<ctime(&now)<<"修改文件:"<<szTemp<<std::endl;}else{std::cout<<ctime(&now)<<pFileNotifyInfo->Action<<":"<<szTemp<<std::endl;}}}//关闭句柄,释放内存::CloseHandle(hDirectory);}//运行程序:Ctrl+F5或调试>“开始执行(不调试)”菜单//调试程序:F5或调试>“开始调试”菜单//入门使用技巧://1.使用解决方案资源管理器窗口添加/管理文件//2.使用团队资源管理器窗口连接到源代码管理//3.使用输出窗口查看生成输出和其他消息//4.使用错误列表窗口查看错误//5.转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目//6.将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择.sln文件
visual studio 2022 编译出来的文件被删除
确定是被删除了,那么极有可能就是杀毒软件搞的鬼,然而因为特殊原因,我不能退出杀毒软件,所以对目录做了如下权限拒绝操作:
杀软一般都是以system用户组来运行的。这样就解决了,编译出来的文件也没用被删除掉。
以上就是关于“怎么使用visualstudio2022监视目录中的文件变更”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
怎么使用visual studio2022监视目录中的文件变更的详细内容,希望对您有所帮助,信息来源于网络。