[英]How to monitor a directory for files in C++?
我需要監視一個包含許多文件的目錄,一個進程從該目錄中讀取和刪除.txt文件; 一旦所有.txt文件都被使用完,則需要終止使用過程。 如何檢查所有.txt文件是否都使用C ++消耗了? 我正在Windows平台上的Visual Studio上開發應用程序。
若要獲取目錄內容何時更改的回調,請使用ReadDirectoryChangesW和FindFirstChangeNotification 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.