2014-04-05 6 views
7

Gibt es eine Möglichkeit, eine Aktion auszulösen, wenn eine Datei in einem bestimmten Verzeichnis (oder in einem Unterordner) ohne jedes Mal alle Änderungszeiten abzurufen? Ich frage, weil ich das live überprüfen mussQt: überprüfen, ob eine Datei im Ordner geändert wird

+0

auch das ist mein Problem auch, dankbar, dass die SO-Plattform gelöst. – RicoRicochet

Antwort

8

Sie müssen den QFileSystemWatcher verwenden.

Noch wichtiger ist, ist dies das Signal, das Sie verbinden müssen:

void QFileSystemWatcher::fileChanged(const QString & path) [signal]

Dieses Signal ausgesendet wird, wenn die Datei auf dem angegebenen Pfad geändert, umbenannt oder von der Festplatte entfernt.

Siehe auch directoryChanged().

So können Sie so etwas wie dies in Ihrer Klasse oder Funktion schreiben:

... 
QFileSystemWatcher watcher; 
watcher.addPath("/My/Path/To/The/File"); 

QObject::connect(&watcher, SIGNAL(fileChanged(const QString&)), receiver, SLOT(handleFileChanged(const QString&))); 
... 
Verwandte Themen