欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

visual?studio?2022?編譯出來的文件被刪除并監(jiān)視目錄中的文件變更(示例詳解)

 更新時間:2022年08月29日 14:24:17   作者:狂自私  
這篇文章主要介紹了visual?studio?2022?編譯出來的文件被刪除?并監(jiān)視目錄中的文件變更,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

監(jiān)視目錄中的文件變更

因為編譯出來的exe被刪除(猜測被刪除)了,所以就想驗證下是不是,代碼如下:

//參考:https://zhuanlan.zhihu.com/p/493850984
// 監(jiān)控文件變化.cpp : 此文件包含 "main" 函數。程序執(zhí)行將在此處開始并結束。
//
#include <Windows.h>
#include <winbase.h>
#include <fileapi.h>
#include <iostream>
#include <string>
#include <ctime>
#include <array>

// 寬字節(jié)字符串轉多字節(jié)字符串
void W2C(wchar_t* pwszSrc, int iSrcLen, char* pszDest, int iDestLen)
{
    ::RtlZeroMemory(pszDest, iDestLen);
    // 寬字節(jié)字符串轉多字節(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 << "內存申請失敗!" << 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 << "內存溢出!" << 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 或調試 >“開始執(zhí)行(不調試)”菜單
// 調試程序: F5 或調試 >“開始調試”菜單

// 入門使用技巧: 
//   1. 使用解決方案資源管理器窗口添加/管理文件
//   2. 使用團隊資源管理器窗口連接到源代碼管理
//   3. 使用輸出窗口查看生成輸出和其他消息
//   4. 使用錯誤列表窗口查看錯誤
//   5. 轉到“項目”>“添加新項”以創(chuàng)建新的代碼文件,或轉到“項目”>“添加現有項”以將現有代碼文件添加到項目
//   6. 將來,若要再次打開此項目,請轉到“文件”>“打開”>“項目”并選擇 .sln 文件

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

visual studio 2022 編譯出來的文件被刪除

確定是被刪除了,那么極有可能就是殺毒軟件搞的鬼,然而因為特殊原因,我不能退出殺毒軟件,所以對目錄做了如下權限拒絕操作:

殺軟一般都是以system用戶組來運行的。這樣就解決了,編譯出來的文件也沒用被刪除掉。

到此這篇關于visual studio 2022 編譯出來的文件被刪除 并監(jiān)視目錄中的文件變更的文章就介紹到這了,更多相關visual studio 2022 編譯文件被刪除內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++開發(fā)之CRC校驗實例詳解

    C++開發(fā)之CRC校驗實例詳解

    這篇文章主要介紹了C++開發(fā)之CRC校驗實例詳解的相關資料,需要的朋友可以參考下
    2017-07-07
  • c++使用正則表達式提取關鍵字的方法

    c++使用正則表達式提取關鍵字的方法

    這篇文章給大家介紹了c++使用正則表達式提取關鍵字的方法,相對來說比較簡單,同時給大家提到了c++通過正則表達式提取匹配到的字符串的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-08-08
  • c++ priority_queue用法入門超詳細教程

    c++ priority_queue用法入門超詳細教程

    priority_queue即優(yōu)先級隊列,它的使用場景很多,它底層是用大小根堆實現的,可以用log(n)的時間動態(tài)地維護數據的有序性,這篇文章主要介紹了c++ priority_queue用法入門超詳細教程,需要的朋友可以參考下
    2023-12-12
  • C++?opencv學習之圖像像素的邏輯操作

    C++?opencv學習之圖像像素的邏輯操作

    圖像的像素操作包括讀寫操作、算數操作、邏輯運算操作等,下面這篇文章主要給大家介紹了關于C++?opencv學習之圖像像素的邏輯操作的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • C++實現“隱藏實現,開放接口”的方案

    C++實現“隱藏實現,開放接口”的方案

    本文從一個實例講解了C++實現“隱藏實現,開放接口”的方案,文章條理清新,內容充實,需要的朋友可以參考下
    2015-07-07
  • C++構造函數的初始化列表詳解

    C++構造函數的初始化列表詳解

    這篇文章主要為大家介紹了C++構造函數的初始化列表,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 詳解C++中的析構函數

    詳解C++中的析構函數

    這篇文章主要介紹了C++中的析構函數的相關知識,文中講解非常詳細,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • C語言數據結構實現銀行模擬

    C語言數據結構實現銀行模擬

    這篇文章主要介紹了C語言數據結構實現銀行模擬的相關資料,通過此文希望大家能理解離散化的方法,希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • C語言 數組指針詳解及示例代碼

    C語言 數組指針詳解及示例代碼

    本文主要介紹C語言 數組指針,這里整理了相關資料并附示例待會及實現結果,幫助大家學習C語言中指針的知識,有需要學習此部分內容的朋友可以參考下
    2016-08-08
  • 深度理解C語言中的關鍵字static

    深度理解C語言中的關鍵字static

    在C語言中static主要定義全局靜態(tài)變量、定義局部靜態(tài)變量、定義靜態(tài)函數,下面這篇文章主要給大家介紹了關于C語言中關鍵字static的相關資料,需要的朋友可以參考下
    2021-08-08

最新評論