visual?studio?2022?編譯出來(lái)的文件被刪除并監(jiān)視目錄中的文件變更(示例詳解)
監(jiān)視目錄中的文件變更
因?yàn)榫幾g出來(lái)的exe被刪除(猜測(cè)被刪除)了,所以就想驗(yàn)證下是不是,代碼如下:
//參考:https://zhuanlan.zhihu.com/p/493850984
// 監(jiān)控文件變化.cpp : 此文件包含 "main" 函數(shù)。程序執(zhí)行將在此處開(kāi)始并結(jié)束。
//
#include <Windows.h>
#include <winbase.h>
#include <fileapi.h>
#include <iostream>
#include <string>
#include <ctime>
#include <array>
// 寬字節(jié)字符串轉(zhuǎn)多字節(jié)字符串
void W2C(wchar_t* pwszSrc, int iSrcLen, char* pszDest, int iDestLen)
{
::RtlZeroMemory(pszDest, iDestLen);
// 寬字節(jié)字符串轉(zhuǎn)多字節(jié)字符串
::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 << "內(nèi)存申請(qǐng)失敗!" << 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 << "系統(tǒng)不支持!" << std::endl;
}
else if (watch_state == 0)
{
std::cout << "監(jiān)控失敗!" << std::endl;
}
else if (GetLastError() == ERROR_NOTIFY_ENUM_DIR)
{
std::cout << "內(nèi)存溢出!" << 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;
}
}
}
// 關(guān)閉句柄, 釋放內(nèi)存
::CloseHandle(hDirectory);
}
// 運(yùn)行程序: Ctrl + F5 或調(diào)試 >“開(kāi)始執(zhí)行(不調(diào)試)”菜單
// 調(diào)試程序: F5 或調(diào)試 >“開(kāi)始調(diào)試”菜單
// 入門(mén)使用技巧:
// 1. 使用解決方案資源管理器窗口添加/管理文件
// 2. 使用團(tuán)隊(duì)資源管理器窗口連接到源代碼管理
// 3. 使用輸出窗口查看生成輸出和其他消息
// 4. 使用錯(cuò)誤列表窗口查看錯(cuò)誤
// 5. 轉(zhuǎn)到“項(xiàng)目”>“添加新項(xiàng)”以創(chuàng)建新的代碼文件,或轉(zhuǎn)到“項(xiàng)目”>“添加現(xiàn)有項(xiàng)”以將現(xiàn)有代碼文件添加到項(xiàng)目
// 6. 將來(lái),若要再次打開(kāi)此項(xiàng)目,請(qǐng)轉(zhuǎn)到“文件”>“打開(kāi)”>“項(xiàng)目”并選擇 .sln 文件參考如下:https://zhuanlan.zhihu.com/p/493850984
visual studio 2022 編譯出來(lái)的文件被刪除
確定是被刪除了,那么極有可能就是殺毒軟件搞的鬼,然而因?yàn)樘厥庠颍也荒芡顺鰵⒍拒浖?,所以?duì)目錄做了如下權(quán)限拒絕操作:


殺軟一般都是以system用戶組來(lái)運(yùn)行的。這樣就解決了,編譯出來(lái)的文件也沒(méi)用被刪除掉。
到此這篇關(guān)于visual studio 2022 編譯出來(lái)的文件被刪除 并監(jiān)視目錄中的文件變更的文章就介紹到這了,更多相關(guān)visual studio 2022 編譯文件被刪除內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++算法學(xué)習(xí)之分支限界法的應(yīng)用
分支限界法常以廣度優(yōu)先或以最小耗費(fèi)(最大效益)優(yōu)先的方式搜索問(wèn)題的解空間樹(shù)。本文將詳細(xì)講解分支限界法的應(yīng)用,需要的可以參考一下2022-05-05
c語(yǔ)言基于stdarg.h的可變參數(shù)函數(shù)的用法
本篇文章主要介紹了c語(yǔ)言基于stdarg.h的可變參數(shù)函數(shù)的用法,詳細(xì)的介紹了可變參數(shù)函數(shù)的詳細(xì)用法和源碼實(shí)例,有興趣的可以了解一下2017-07-07
C++開(kāi)發(fā):為什么多線程讀寫(xiě)shared_ptr要加鎖的詳細(xì)介紹
本篇文章介紹了,在C++中為什么多線程讀寫(xiě)shared_ptr要加鎖的詳細(xì)說(shuō)明。需要的朋友參考下2013-04-04
C++編程模板匹配超詳細(xì)的識(shí)別手寫(xiě)數(shù)字實(shí)現(xiàn)示例
大家好!本篇文章是關(guān)于手寫(xiě)數(shù)字識(shí)別的,接下來(lái)我將在這里記錄我的手寫(xiě)數(shù)字識(shí)別的從零到有,我在這里把我自己的寫(xiě)代碼過(guò)程發(fā)出來(lái),希望能幫到和我一樣努力求知的人2021-10-10
C++實(shí)現(xiàn)String與UF8互轉(zhuǎn)
這篇文章介紹了C++實(shí)現(xiàn)String與UF8互轉(zhuǎn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
C++中constexpr與函數(shù)參數(shù)轉(zhuǎn)發(fā)的操作方法
constexpr是c++11引入的關(guān)鍵字,c++11的constexpr的函數(shù)中只是支持單句代碼,c++14限制放寬,可以在里邊寫(xiě)循環(huán)及邏輯判斷等語(yǔ)句,本文探討關(guān)于constexpr的函數(shù)中參數(shù)的現(xiàn)象,以及如果參數(shù)是constexpr如何做轉(zhuǎn)發(fā),感興趣的朋友一起看看吧2024-02-02
C語(yǔ)言解字符串逆序和單向鏈表逆序問(wèn)題的代碼示例
這篇文章主要介紹了C語(yǔ)言解字符串逆序和單向鏈表逆序問(wèn)題的代碼示例,求逆序也是考研和面試中的基礎(chǔ)算法題類型,需要的朋友可以參考下2016-06-06

