最近要做一个日志监控类的程序,将日志文件的变化及时输出到程序界面上,本来是想用定时器去实现的,定时去读取日志,然后与上一次的内容相比,找到变化的部分,再进行输出,后台又觉得这样效率比较低,定时器的触发时间间隔也不太好控制,后来找了一下,发现这个QFileSystemWatcher类,很方便的实现这样的功能。
QFileSystemWatcher类的简单说明
QFileSystem这个类,可以同时监控多个文件夹和文件,在文件夹删除,重命名等,以及文件的修改,删除等变化的情况下,就会发出信号通知接受者。使用的时候也很简单,只需要将需要监控的文件/文件夹的路径通过addPath添加给QFileSystemWatcher,不想使用的时候,通过removePath就可以去掉监控。当变化的时候,会触发信号:directoryChanged 和 fileChanged 非常的简单方便
addPath(const QString &path)
bool QFileSystemWatcher::removePath(const QString &path)
//相关的信号
void directoryChanged(const QString &path)
void fileChanged(const QString &path)
通过这个类的监控,就不用定时器去不停的读取文件了,可以说是简单灵活了。