您当前的位置: 首页 >  qt

令狐掌门

暂无认证

  • 2浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt监控目录文件变化:QFileSystemWatcher用法

令狐掌门 发布时间:2020-03-27 17:25:11 ,浏览量:2

    Qt提供了目录文件变动检测功能的类QFileSystemWatcher,使用该类要想添加头文件

                           #include 

    先看看他的源码:

    bool addPath(const QString &file);
    QStringList addPaths(const QStringList &files);
    bool removePath(const QString &file);
    QStringList removePaths(const QStringList &files);

    QStringList files() const;
    QStringList directories() const;

Q_SIGNALS:
    void fileChanged(const QString &path, QPrivateSignal);
    void directoryChanged(const QString &path, QPrivateSignal);

  信号:directoryChanged 是监控提供的目录的变化

  addPath:给QFileSystemWatcher兑现添加目录

  下面的demo提供了目录文件变动的检测功能,用法如下:

(1)先声明对象    QFileSystemWatcher m_FileWatcher;

(2)添加需要监控的目录   m_FileWatcher.addPath(path);

(3)绑定信号槽

//监视目录中的文件是否变化
connect(&m_FileWatcher, SIGNAL(directoryChanged(QString)), this, SLOT(onDirectoryChaned(QString)));

        可以在槽函数做相应的处理,我只做了个提示,其它功能可以自行添加,例如读取,上传,备份等,在一些安防项目会用到。

void Widget::onDirectoryChaned(QString path)
{
    QMessageBox::information(this, tr("提示"), path + tr(" 目录文件有改动"), NULL);
}

        打开相应目录后,如果在往目录中添加文件,则会有提示,界面如下:

     

     本例子的全部代码:https://gitee.com/qwerwo/QtFileMonitor

关注
打赏
1652240117
查看更多评论
立即登录/注册

微信扫码登录

0.0498s