visual studio 2022 编译出来的文件被删除并监视目录中的文件变更(示例详解)

目录

监视目录中的文件变更

visual studio 2022 编译出来的文件被删除

监视目录中的文件变更

因为编译出来的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> // 宽字节字符串转多字节字符串 void W2C(wchar_t* pwszSrc, int iSrcLen, char* pszDest, int iDestLen) { ::RtlZeroMemory(pszDest, iDestLen); // 宽字节字符串转多字节字符串 ::WideCharToMultiByte(CP_ACP, 0, pwszSrc, (iSrcLen / 2), pszDest, iDestLen, NULL, NULL); } int main() { bool watch_state{}; HANDLE hDirectory{ 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 = new BYTE[2048]; if (NULL == pBuf) { std::cout << "内存申请失败!" << std::endl; return 2; } FILE_NOTIFY_INFORMATION* pFileNotifyInfo = (FILE_NOTIFY_INFORMATION*)pBuf; DWORD in_MemorySize{2048}; LPDWORD in_out_BytesReturned{ new DWORD{} }; char szTemp[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_t now = time(0); if (GetLastError() == ERROR_INVALID_FUNCTION) { std::cout << "系统不支持!" << std::endl; } else if (watch_state == 0) { std::cout << "监控失败!" << std::endl; } else if (GetLastError() == ERROR_NOTIFY_ENUM_DIR) { std::cout << "内存溢出!" << std::endl; } else { if (pFileNotifyInfo->Action == FILE_ACTION_ADDED) { std::cout << ctime(&now) << "新增文件 : " << szTemp << std::endl; } else if (pFileNotifyInfo->Action == FILE_ACTION_REMOVED) { std::cout << ctime(&now) << "删除文件 : " << szTemp << std::endl; } else if (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 文件

参考如下:https://zhuanlan.zhihu.com/p/493850984

visual studio 2022 编译出来的文件被删除

确定是被删除了,那么极有可能就是杀毒软件搞的鬼,然而因为特殊原因,我不能退出杀毒软件,所以对目录做了如下权限拒绝操作:

杀软一般都是以system用户组来运行的。这样就解决了,编译出来的文件也没用被删除掉。

到此这篇关于visual studio 2022 编译出来的文件被删除 并监视目录中的文件变更的文章就介绍到这了,更多相关visual studio 2022 编译文件被删除内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    fl钢琴卷快捷键|flstudio钢琴窗快捷键

    fl钢琴卷快捷键|flstudio钢琴窗快捷键,,1. flstudio钢琴窗快捷键FLstudio这个软件,你想把音值拉长,首先要打开钢琴卷帘窗,选择要拉长的音,等图

    BeatsStudioBuds怎么使用-使用方式说明

    BeatsStudioBuds怎么使用-使用方式说明,按住,音量,通话,设置,一只耳,模式,对于BeatsStudioBuds这款蓝牙耳机,刚刚购买的小伙伴们是不是还不太熟

    索尼wh-1000xm3和beats studio3哪个好

    索尼wh-1000xm3和beats studio3哪个好,索尼,降噪,索尼wh-1000xm3和beats studio3哪个好1.beats studio3在颜值上,略酷炫张扬,索尼1000xm3相

    visual快捷键说明|visual 快捷键

    visual快捷键说明|visual 快捷键,,1. visual 快捷键华硕显示器GameVisual显示技术可通过按下显示屏底部第二个按钮打开,快捷菜单如下:Game V

    Android Studio手动安装Genymotion插件的详细方法【详解】

    Android Studio手动安装Genymotion插件的详细方法【详解】,插件,安装,设置,方法,点击,图标,  有那么一部份多朋友还不熟悉Android Studio如何

    css如何实现旋转效果(代码示例)

    css如何实现旋转效果(代码示例),属性,元素,过渡效果,画中,控制,常用,CSS是应用广泛的网页样式设计语言,旋转是其中一个常用的效果。通过CSS实现旋

    怎么在Win11上安装OBS Studio OBS Studio录制我的电脑屏幕方法【详解】

    怎么在Win11上安装OBS Studio OBS Studio录制我的电脑屏幕方法【详解】,选择,录制,插件,下载,窗口,安装,  如何在 Windows 11 中下载并安装 O

    递归函数代码示例

    递归函数代码示例,递归,函数,本文目录递归函数代码示例编写一个递归函数计算从1加到100的和c语言函数递归调用c语言类函数递归调用的简单

    Materials Studio安装中可能遇到的问题

    Materials Studio安装中可能遇到的问题,问题,材料科学,Materials Studio安装中可能遇到的问题一、问题1:下载的安装包无法正常解压网上下载

    如何学习Android studio

    如何学习Android studio,所示,界面,如何学习Android studio关于编程这件事,只有多学,多练才能提高编程水平,不管是安卓开发还是其他的都是一