簡體   English   中英

如何在C ++中監視目錄中的文件?

[英]How to monitor a directory for files in C++?

我需要監視一個包含許多文件的目錄,一個進程從該目錄中讀取和刪除.txt文件; 一旦所有.txt文件都被使用完,則需要終止使用過程。 如何檢查所有.txt文件是否都使用C ++消耗了? 我正在Windows平台上的Visual Studio上開發應用程序。

若要獲取目錄內容何時更改的回調,請使用ReadDirectoryChangesWFindFirstChangeNotification Win32 API。

您可以從此問題中看到示例。

使用FindFirstChangeNotification注冊通知回調。

由於不需要對每個txt文件刪除執行操作。 我想出了以下代碼:

{
  intptr_t hFile;
  struct _finddata_t c_file;
  string searchSpec;
  for (size_t i = 0; i < dataPathVec.size(); ++i)
  {
    searchSpec = dataPathVec.at(i) + DIRECTORY_SEPERATOR + "*" + TXT_FILE_EXT;
    hFile = 0;
    while((hFile != -1L) || (ret != 0))
    {
        hFile = _findfirst(searchSpec.c_str(), &c_file);
        Sleep(500);
        if (hFile != -1L)
        {
            ret = _findclose(hFile);
        }
    }
  }
}

它可以監視許多文件夾,並等待直到所有txt文件從所有監視的文件夾中刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM