Ich versuche, eine Methode zum Überwachen eines Verzeichnisses für eine Datei erstellt werden. Diese Datei hat die Erweiterung .complete
. Wenn es nicht da ist, möchte ich darauf warten, dass es erscheint. Wenn es angezeigt wird, möchte ich herausfinden, den Namen der Datei vor der Erweiterung extrahieren, löschen Sie die Datei .complete
, einige Verarbeitung, und dann wieder auf eine neue .complete
Datei zu hören.Warten auf eine Datei erstellt werden
Hier ist, was ich bisher habe. Ich denke, ich brauche nur Hilfe, um den Namen der Datei zu extrahieren, vorausgesetzt, ich habe die Wildcard richtig gemacht.
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");
}
}
ich, dass 'boost nicht bewusst war: : filesystem :: exists 'führt eine Platzhaltererweiterung durch. Bist du sicher, dass es das tut? –
es scheint, als ob es nicht ohne einige zusätzliche Schritte – user1984300
boost Dateisystem Bibliothek ist in der Lage, regelmäßige Dateien unter angegebenen Pfad zu iterieren. es ist auch in der Lage, die Erweiterung einer regulären Datei zu geben. – ZFY