DtkCore
DTK Core module
载入中...
搜索中...
未找到
DFileWatcherManager类 参考

DFileWatcherManager 类可以帮助管理一系列 DFileWatcher 文件监视器,并在文件变动时发送信号通知. 更多...

详细描述

DFileWatcherManager 类可以帮助管理一系列 DFileWatcher 文件监视器,并在文件变动时发送信号通知.

示例代码:

#include "dfilewatchermanager"
#include <QCoreApplication>
#include <QTemporaryFile>
#include <QDebug>
#include <QTimer>
DCORE_USE_NAMESPACE
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
QTemporaryFile tmpfile1; // 创建临时文件1
tmpfile1.open();
QFile file1( tmpfile1.fileName());
QTemporaryFile tmpfile2; // 创建临时文件2
tmpfile2.open();
QFile file2( tmpfile2.fileName());
manager.add(tmpfile1.fileName());// 监控临时文件1
manager.add(tmpfile2.fileName());// 监控临时文件2
QObject::connect(&manager, &Dtk::Core::DFileWatcherManager::fileModified, &app, [=](const QString value) {
qDebug() << "文件发生变动:" << value;
}); // 文件发生变动时打印文件路径
QObject::connect(&manager, &Dtk::Core::DFileWatcherManager::fileDeleted, &app, [=](const QString value) {
qDebug() << "文件被删除:" << value;
});
file1.open(QIODevice::WriteOnly|QIODevice::Text);// 修改临时文件1
file1.write("test");
file1.close();
file2.open(QIODevice::WriteOnly|QIODevice::Text);// 修改临时文件2
file2.write("test");
file2.close();
qDebug() << manager.watchedFiles();// 打印所有被监控的文件路径
qDebug() << "---------------------------";
app.processEvents();// 处理事件
manager.removeAll();// 移除所有的监控
qDebug() << manager.watchedFiles();// 打印所有被监控的文件路径
return app.exec();
}
DFileWatcherManager 类可以帮助管理一系列 DFileWatcher 文件监视器,并在文件变动时发送信号通知.
void fileDeleted(const QString &filePath)
当路径filePath对应的文件被删除时发送此信号.
void fileModified(const QString &filePath)
当路径filePath对应的文件被修改时发送此信号.

上面代码演示了如何使用 DFileWatcherManager 类来监控文件变动和清除文件变动的监控. 具体可以参照源码中的example文件夹中的文件变动监控例子.


该类的文档由以下文件生成: