C++ 正在等待创建文件
我正在尝试编写一个方法来监视目录中要创建的文件。此文件的扩展名为C++ 正在等待创建文件,c++,boost,C++,Boost,我正在尝试编写一个方法来监视目录中要创建的文件。此文件的扩展名为.complete。如果它不在那里,我想等待它出现。当它出现时,我想在扩展名之前提取文件名,删除.complete文件,进行一些处理,然后返回侦听新的.complete文件 这是我到目前为止所拥有的。我想我只需要帮助提取文件名,假设我正确地使用了通配符 while(1) { if (!boost::filesystem::exists("/var/test/*.complete")) { cout <&
.complete
。如果它不在那里,我想等待它出现。当它出现时,我想在扩展名之前提取文件名,删除.complete
文件,进行一些处理,然后返回侦听新的.complete
文件
这是我到目前为止所拥有的。我想我只需要帮助提取文件名,假设我正确地使用了通配符
while(1) {
if (!boost::filesystem::exists("/var/test/*.complete")) {
cout << ".complete file does not exist" << endl;
}
else {
//extract name of .complete file minus extension
//do my processing
system("rm *.complete");
}
}
while(1){
如果(!boost::filesystem::存在(“/var/test/*.complete”)){
cout我不习惯提振,但只要简单几步,你就能得到你想要的
步骤1:读取目录(readdir或等效目录)
步骤2:您将获得目录中包含的所有文件作为常量字符*
步骤3:获取std::string而不是const char*
步骤4:fileName.find(“.complete”)
你明白了:)我明白了
我使用了下面这个答案中的get_all函数,并将其添加到我的程序中
我不知道boost::filesystem::exists
执行通配符扩展。你确定它执行通配符扩展吗?如果没有一些额外的步骤,它似乎不会执行。boost filesystem library能够在指定路径下迭代常规文件。它还能够提供一个常规文件的扩展名。这将更有意义。然后,y你已经有文件名了。