Qt监测系统文件变化QFileSystemWatcher
2016-05-25 14:48
375 查看
QFileSystemWatcher文件系统监视器
#include <QFileSystemWatcher>
#include <QDir>
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://blog.csdn.net/taiyang1987912/article/details/38301169
相关文章推荐
- Qt实现桌面悬浮球/不规则窗体
- Qt使用默认程序打开网址、文件夹
- Qt Create 笔记 (一) 1.QString 2.QByteArray
- 采用基于MQTT的ActiveMQ实现消息推送
- pyqt向py转换,所生成的.py中注意内容
- Win10下如何配置Qt环境变量
- Install Qt creator
- 统一开发环境,Qt工程转换成VS工程的便捷工具
- [置顶] Qt5.5.0编译QtAV
- Ubuntu下安装Qt全部过程
- 初次使用QT5串口类QSerialPort
- QT vs x64编译
- QT中自定义事件
- QT QString 十六进制整数变为字符串自动补0 && 十进制补零
- QT4使用HDF5 类型错误
- Qt的paint函数重写,以及QPaint给一条线绘制箭头
- Ubuntu16.04下qtcreator 3.6.1不能输入中文(fcitx)
- QT下的QProcess调用外部程序
- Windows下QWT绘图实例
- /usr/local/Trolltech/QtEmbedded-4.8.5-arm/include/QtCore/qatomic_armv5.h:131: 错误:no such instruction