繁体   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