[英]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.