首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用QFileSystemWatcher监视文件目录变化

使用QFileSystemWatcher监视文件目录变化

作者头像
Qt君
修改2019-07-16 15:42:32
1.5K0
修改2019-07-16 15:42:32
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

使用QFileSystemWatcher类用于监视文件和目录的修改。

使用方法

  1. 添加需要监视的文件或目录
bool addPath(const QString &path);
QStringList addPaths(const QStringList &paths);
  1. 监听信号的变化
void directoryChanged(const QString &path);
void fileChanged(const QString &path);

示例

  • MyFileWatcher.h
	#ifndef MYFILEWATCHER_H
	#define MYFILEWATCHER_H

  #include <QObject>
	#include <QFileSystemWatcher>
	
	class MyFileWatcher : public QObject
	{
	    Q_OBJECT
	public:
	    explicit MyFileWatcher(QObject *parent = nullptr);
	
	public slots:
	    void onFileChanged(const QString &file);
	    void onDirectoryChanged(const QString &path);
	
	private:
	    QFileSystemWatcher m_fileWatcher;
	};
	
	#endif // MYFILEWATCHER_H
  • MyFileWatcher.cpp
#include "MyFileWatcher.h"
#include <QDebug>

MyFileWatcher::MyFileWatcher(QObject *parent) : QObject(parent)
{
    m_fileWatcher.addPath("C:/Documents/test.txt"); // monitoring file
    m_fileWatcher.addPath("C:/Documents/test"); // monitoring directory

    connect(&m_fileWatcher, SIGNAL(fileChanged(const QString&)), this, SLOT(onFileChanged(const QString &)));
    connect(&m_fileWatcher, SIGNAL(directoryChanged(const QString&)), this, SLOT(onDirectoryChanged(const QString &)));

    qDebug()<<"Monitoring File:"<<m_fileWatcher.files();
    qDebug()<<"Monitoring Directory:"<<m_fileWatcher.directories();
}

void MyFileWatcher::onFileChanged(const QString &file)
{
    qDebug()<<"File Changed:"<<file;
}

void MyFileWatcher::onDirectoryChanged(const QString &path)
{
    qDebug()<<"Directory Changed:"<<path;
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用方法
  • 示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档