当前位置: 首页 > news >正文

福州市工程建设监督站网站筑龙网app下载

福州市工程建设监督站网站,筑龙网app下载,青岛网络优化费用,金坛网站建设第三代软件开发-文件监视器 文章目录 第三代软件开发-文件监视器项目介绍文件监视器实现原理关于 QFileSystemWatcher实现代码 关键字#xff1a; Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML C 项目#xff01;这个项目结合了 QML… 第三代软件开发-文件监视器 文章目录 第三代软件开发-文件监视器项目介绍文件监视器实现原理关于 QFileSystemWatcher实现代码 关键字 Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML C 项目这个项目结合了 QMLQt Meta-Object Language和 C 的强大功能旨在开发出色的用户界面和高性能的后端逻辑。 在项目中我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件我们能够迅速开发出丰富多样的界面效果和动画效果。同时我们利用 QML 强大的集成能力轻松将 C 的底层逻辑和数据模型集成到前端界面中。 在后端方面我们使用 C 编写高性能的算法、数据处理和计算逻辑。C 是一种强大的编程语言能够提供卓越的性能和可扩展性。我们的团队致力于优化代码减少资源消耗以确保我们的项目在各种平台和设备上都能够高效运行。 无论您是对 QML 和 C 开发感兴趣还是需要我们为您构建复杂的用户界面和后端逻辑我们都随时准备为您提供支持。请随时联系我们让我们一同打造现代化、高性能的 QML C 项目 重要说明☝ ☀该专栏在第三代软开发更新完将涨价 文件监视器 如果你看过我前面【第三代软件开发-U盘监测】的话在哪里会发现有一个文件监视器指的就是这个模块 实现原理 如下图所示其实就是在Qt的文件监视器基础上做了细分支持之别是文件增加、减少和重命名。 关于 QFileSystemWatcher QFileSystemWatcher是一个用于监视文件和目录变化的类。它是Qt框架中的一部分用于跟踪文件系统中的文件和目录的变化例如文件的创建、修改、删除以及目录的重命名等操作。 使用QFileSystemWatcher您可以注册要监视的文件或目录并在这些文件或目录发生变化时接收通知。它提供了一种方便的方式来监视文件系统的变化以便及时响应这些变化。 QFileSystemWatcher可以用于许多不同的应用场景例如 自动更新您可以使用QFileSystemWatcher来监视特定文件或目录的变化并在文件或目录发生更改时自动触发更新操作。 日志记录如果您需要监视日志文件的变化您可以使用QFileSystemWatcher来实时检测文件的更新并在文件发生变化时记录相关信息。 文件同步如果您正在开发一个文件同步应用程序您可以使用QFileSystemWatcher来监视源文件夹中的变化并在文件发生更改时自动同步到目标文件夹。 使用QFileSystemWatcher非常简单。您只需创建一个QFileSystemWatcher对象然后使用addPath()方法注册要监视的文件或目录的路径。当所监视的文件或目录发生变化时QFileSystemWatcher会发出directoryChanged()或fileChanged()信号您可以连接这些信号来处理相应的变化。 需要注意的是QFileSystemWatcher的可用性取决于操作系统的支持。在某些操作系统上QFileSystemWatcher可能无法监视某些特定的文件或目录变化。因此在使用QFileSystemWatcher时建议仔细查阅相关文档以了解其在目标平台上的限制和行为。 实现代码 代码基本不怎么复杂直接上代码吧 #include QObject #include QDebug#include QMap #include QFileSystemWatcher #include QFileInfo #include QDirclass XXXX : public QObject {Q_OBJECT public:explicit XXXX(QObject *parent nullptr);void addWatchPath(QString path);void removeWatchPath(QString path);void getInitFile(QString path);public slots:void slotDirectoryUpdated(const QString path); // 目录更新时调用path是监控的路径void slotFileUpdated(const QString path); // 文件被修改时调用path是监控的路径signals:// 添加新文件/目录至Dirvoid signalAddFile(QString strFolder, QString strFile);// 从Dir中删除文件/目录void signalDeleteFile(QString strFolder, QString strFile);// 文件/目录重命名void signalRenamedFile(QString strFolder, QString strNewName, QString strOldName);private: // static XXXX *m_pInstance; // 单例QFileSystemWatcher* m_pSystemWatcher nullptr; // QFileSystemWatcher变量QMapQString, QStringList m_currentContentsMap; // 当前每个监控的内容目录列表};#endif // XXXX_H#include XXXX.h /*** brief XXXX::XXXX* param parent* 构造函数*/ XXXX::XXXX(QObject *parent) : QObject(parent) {m_pSystemWatcher new QFileSystemWatcher;// 连接QFileSystemWatcher的directoryChanged和fileChanged信号到相应的槽connect(m_pSystemWatcher,QFileSystemWatcher::directoryChanged,this,XXXX::slotDirectoryUpdated);connect(m_pSystemWatcher,QFileSystemWatcher::fileChanged,this,XXXX::slotFileUpdated); } /*** brief XXXX::addWatchPath* param path* 添加监控路径*/ void XXXX::addWatchPath(QString path) {// 添加监控路径m_pSystemWatcher-addPath(path);// 如果添加路径是一个目录保存当前内容列表QFileInfo file(path);if (file.isDir()){QDir dirw(path);m_currentContentsMap[path] dirw.entryList(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Files, QDir::DirsFirst);} } /*** brief XXXX::removeWatchPath* param path* 移除监控路径*/ void XXXX::removeWatchPath(QString path) {m_pSystemWatcher-removePath(path); } /*** brief XXXX::getInitFile* param path* 获取初始文件*/ void XXXX::getInitFile(QString path) {} /*** brief XXXX::slotDirectoryUpdated* param path* 目录更新槽函数*/ void XXXX::slotDirectoryUpdated(const QString path) {// 比较最新的内容和保存的内容找出区别(变化)QStringList currEntryList m_currentContentsMap[path];const QDir dir(path);QStringList newEntryList dir.entryList(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Files, QDir::DirsFirst);QSetQString newDirSet QSetQString::fromList(newEntryList);QSetQString currentDirSet QSetQString::fromList(currEntryList);// 添加了文件QSetQString newFiles newDirSet - currentDirSet;QStringList newFile newFiles.toList();// 文件已被移除QSetQString deletedFiles currentDirSet - newDirSet;QStringList deleteFile deletedFiles.toList();// 更新当前设置m_currentContentsMap[path] newEntryList;if (!newFile.isEmpty() !deleteFile.isEmpty()){// 文件/目录重命名if ((newFile.count() 1) (deleteFile.count() 1)){emit signalRenamedFile(path,newFile.first(),deleteFile.first());}}else{// 添加新文件/目录至Dirif (!newFile.isEmpty()){foreach (QString file, newFile){qDebug() 新增文件路径 file;// 处理操作每个新文件....emit signalAddFile(path,file);}}// 从Dir中删除文件/目录if (!deleteFile.isEmpty()){foreach(QString file, deleteFile){// 处理操作每个被删除的文件....emit signalDeleteFile(path,file);}}}} /*** brief XXXX::slotFileUpdated* param path* 文件更新*/ void XXXX::slotFileUpdated(const QString path) {QFileInfo file(path);QString strPath file.absolutePath();QString strName file.fileName();// qDebug() QString(The file %1 at path %2 is updated).arg(strName).arg(strPath);} 真的很简单不用解释过多吧。这个不是我的原创是我们公司小伙伴写的我的智商能理解我就认为你也理解因为我和我小伙伴说要把我当成傻逼才行。
http://www.hkea.cn/news/14539187/

相关文章:

  • 网站专题设计东莞网站建设总部地址
  • 响应式网站源码.net大石桥网站
  • 百度收录网站与手机版app 门户网站
  • 阿里云备案网站服务内容怎么填wordpress怎样修改字体
  • 冒险岛2做乐谱网站wordpress 屏蔽插件更新
  • 网站性能阜阳网站建设云平台
  • wordpress 科技类主题提升seo排名平台
  • 网站怎么做搜狗排名网站运营一个月多少钱
  • 网站开发语言太老wordpress 手机 看视频
  • 用三权重的网站做友链有好处没网站制作论文答辩
  • 天津网站建设招标网站服务内容网站建设
  • 昆山移动网站建设网站建设的步骤教程视频教程
  • 允许个人做动漫网站吗wordpress固定链接优化
  • 哈尔滨站建筑面积怎么做卖花的网站
  • 做网站开发要装什么软件爱站网
  • wordpress站长主题网店
  • 长春网站建设定制网站设计步骤图
  • 网站建设文化案例东莞网站优化软件
  • 亚马逊电商网站ui网站界面设计
  • 建设营销网站的目的启动互联全网营销推广
  • 做网站还是app省钱中英文企业网站
  • 网站建设 乐清网络公司seo网络营销案例分析
  • 聊城网站公司网站建设税种分类
  • 单页面网站怎么优化农业科技工作服务站建站模板
  • 餐饮技术支持东莞网站建设做公司网站需要制作内容
  • 网站建设的想法erp软件怎么用
  • 网站制作 网络推广学软件技术可以从事什么工作
  • 一个空间安装多个网站旅游企业seo官网分析报告
  • 网站系统下载官网的网站开发费用
  • 安徽省住建厅网站建设郑州网站建设(智巢)