使用QFileSystemWatcher类用于监视文件和目录的修改。 MyFileWatcher.h #ifndef MYFILEWATCHER_H #define MYFILEWATCHER_H #include <QObject> #include <QFileSystemWatcher onFileChanged(const QString &file); void onDirectoryChanged(const QString &path); private: QFileSystemWatcher
QFileSystemWatcher 是 Qt 框架中提供的一个类,用于监视文件系统中的文件和目录的变化。 QFileSystemWatcher(QObject *parent = nullptr) 构造函数,创建一个文件系统监视器对象。 void setFilter(QFileSystemWatcher::Filter filter)设置监视器的过滤器,用于指定要监视的事件类型。 QFileSystemWatcher::Filter filter() const 返回监视器当前的过滤器设置。 功能概述添加监控路径:通过addWatchPath函数添加监控路径,创建QFileSystemWatcher对象并连接相关信号和槽。
实现对特定文件的监控,Qt中提供了QFileSystemWatcher调用这个接口可以快速实现监控功能,当有文件发生变化是自动触发并输出文件具体信息。 filesystem.h #ifndef FILESYSTEM_H #define FILESYSTEM_H #include <QObject> #include <QMap> #include <QFileSystemWatcher FileSystemWatcher(QObject *parent = 0); private: static FileSystemWatcher *m_pInstance; // 单例 QFileSystemWatcher *m_pSystemWatcher; // QFileSystemWatcher变量 QMap<QString, QStringList> m_currentContentsMap; // (); // 连接QFileSystemWatcher的directoryChanged和fileChanged信号到相应的槽 connect(m_pInstance-
01、QFileSystemWatcher>>>QFileSystemWatcher 是 Qt 提供的一个类,用于监视文件和目录的变化。 跨平台支持: QFileSystemWatcher 在多个操作系统上都可以使用,提供一致的接口和行为,方便在不同平台上开发和部署应用。 mainwindow.ui04、filewatcher.h#ifndef FILEWATCHER_H#define FILEWATCHER_H#include <QObject>#include <QFileSystemWatcher 实例 watcher = new QFileSystemWatcher(this); // 添加要监视的文件和文件夹 for (const QString &path : paths ) { if (QFileInfo(path).isFile()) { connect(watcher, &QFileSystemWatcher::fileChanged
size+=Calculate_Size(files[i].absoluteFilePath()); //递归地查找 } } return size; } QFileSystemWatcher 文件系统监视 用来监控目录或文件的状态变化 能够同时对多个目录/文件进行监控 当目录或文件发生改变时,将会触发信号 可以通过信号与槽的机制捕捉信号,并做出响应 QFileSystemWatcher信号函数如下所示 重命名或从磁盘删除时,就会发出这个信号 示例 QFsWatcher.h: #ifndef QFSWATCHER_H #define QFSWATCHER_H #include <QObject> #include <QFileSystemWatcher > #include <QDebug> class QFsWatcher : public QObject { Q_OBJECT private : QFileSystemWatcher
处理临时文件可以使用QTemporaryFile,获取信息可以使用QFileInfo,处理目录可以使用QDir,监视文件和目录变化可以使用QFileSystemWatcher。
统一管理图标和样式 七、进阶建议:提升你的 Qt 项目能力 使用 QAbstractTableModel 构建 MVC 架构 自定义样式表(QSS)美化界面 整合 QTimer、QProcess、QFileSystemWatcher