博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt 监测系统文件和文件夹变化QFileSystemWatcher
阅读量:4193 次
发布时间:2019-05-26

本文共 1405 字,大约阅读时间需要 4 分钟。

QFileSystemWatcher文件系统监视器

 

#include 
#include 

 

 

private:
Ui::Widget *ui;
QPoint relativePos;
QFileSystemWatcher myWatcher;
 
private slots:
void showMessage(const QString &path);

 

 

 

    // 将监视器的信号和自定义的槽进行关联
connect(&myWatcher, SIGNAL(directoryChanged(QString)), this, SLOT(showMessage(QString)));    connect(&myWatcher, SIGNAL(fileChanged(QString)), this, SLOT(showMessage(QString)));    // 显示出当前目录下的所有.h文件    QDir myDir(QDir::currentPath());    myDir.setNameFilters(QStringList("*.h"));    ui->listWidget->addItem(myDir.absolutePath() + tr("目录下的.h文件有:"));    ui->listWidget->addItems(myDir.entryList());    // 创建目录,并将其加入到监视器中    myDir.mkdir("mydir");    myDir.cd("mydir");    ui->listWidget->addItem(tr("监视的目录:") + myDir.absolutePath());    myWatcher.addPath(myDir.absolutePath());    // 创建文件,并将其加入到监视器中    QFile file(myDir.absolutePath() + "/myfile.txt");    if (file.open(QIODevice::WriteOnly)) {        QFileInfo info(file);        ui->listWidget->addItem(tr("监视的文件:") + info.absoluteFilePath());        myWatcher.addPath(info.absoluteFilePath());        file.close();    }
 
// 显示文件或目录改变信息
void Widget::showMessage(const QString &path)
{
QDir dir(QDir::currentPath() + "/mydir");
// 如果是目录发生了改变
if (path == dir.absolutePath()) {
ui->listWidget->addItem(dir.dirName() + tr("目录发生改变: "));
ui->listWidget->addItems(dir.entryList());
} else { // 如果是文件发生了改变
ui->listWidget->addItem(path + tr("文件发生改变!"));
}
}

转载地址:http://mjloi.baihongyu.com/

你可能感兴趣的文章
linux中cat命令使用详解
查看>>
java中的异常机制
查看>>
商务智能-基本方法-数据钻取
查看>>
openstack-instance-high-availability-Evacuate
查看>>
evacuate-instance-automatically
查看>>
pycharm常用设置(keymap设置及eclipse常用快捷键总结)
查看>>
关于在openstack的环境变量.bashrc自定自己简化命令
查看>>
Openstack Heat Project介绍(转)
查看>>
How to Perform an Upgrade from Icehouse to Juno(ice升级到juno)
查看>>
高扩展性网站的50条原则(转)-思维导图
查看>>
解决openstack novnc一段时间后自动挂断登录不上问题,novncproxy dead but pid file exists
查看>>
构建OpenStack的云基础架构:ManageIQ(转)
查看>>
云管理软件 ManageIQ(转)
查看>>
CentOS 7.0,启用iptables防火墙(转)
查看>>
DISCUZ浅析之COOKIE篇
查看>>
实战DDD(Domain-Driven Design领域驱动设计:Evans DDD)
查看>>
SSH中各个框架的作用以及Spring AOP,IOC,DI详解
查看>>
openstack juno 配置vmware(vcenter、vsphere)
查看>>
远程debug调试(eclipse)之openstack windows
查看>>
PAAS平台对比:OpenShift VS CloudFoundry【51CTO调研报告】
查看>>