• 文件系统监视器


    QFileSystemWatcher类通过监视指定路径的列表来监视文件系统对文件和目录的更改。

    构造函数:

     常用函数:

    addPath()添加路径
    addPaths()添加多个路径
    directory()返回正在监视的目录的路径列表
    files()返回正在监视的文件的路径列表
    removePath()删除路径
    removePaths()删除多个路径

    常用的信号:

    directoryChanged()当指定路径的目录被修改,重命名或从磁盘中删除时
    filesChanged()当指定路径上的文件被修改、重命名或从磁盘中删除时

    例子:

    在Widget.h文件中添加:

    1. #include//头文件
    2. QFileSystemWatcher watch;//监视对象
    3. void showMessage(const QString &Path);//显示信息的槽函数

    在WIdget.cpp构造函数中添加:

    1. QListWidget *list=new QListWidget(this);
    2. list->setFixedSize(300,800);//设置大小
    3. connect(&watch,&QFileSystemWatcher::directoryChanged,this,&Widget::showMessage);//目录改变时
    4. connect(&watch,&QFileSystemWatcher::fileChanged,this,&Widget::showMessage);//文件改变时
    5. QDir myDir(QDir::currentPath());//创建一个目录对象,获取当前路径的内容
    6. watch.addPath(myDir.absolutePath());//监视该目录
    7. QFile file(myDir.absolutePath()+"/file.txt");//在目录下创建一个文件,名为file.txt
    8. list->addItems(myDir.entryList());//在ListWidget中显示
    9. if(file.open(QIODevice::WriteOnly))
    10. {
    11. QFileInfo info(file);
    12. list->addItem(info.absolutePath());//显示绝对路径
    13. watch.addPath(info.absolutePath());//监视该文件
    14. file.close();//关闭文件
    15. }

    槽函数的实现:

    1. void Widget::showMessage(const QString &Path)
    2. {
    3. QDir dir(QDir::currentPath()+"/mydir");
    4. if(Path==dir.absolutePath())
    5. {
    6. qDebug()<<tr("目录改变");
    7. }
    8. else
    9. {
    10. qDebug()<<tr("文件改变");
    11. }
    12. }

    当你修改目录和文件时,会在控制台输出目录改变或文件改变

  • 相关阅读:
    VM虚拟机创建centos7 64位系统提示此主机不支持64位客户机操作系统,此系统无法运行
    【JavaScript】DOM 节点操作
    springboot整合全文搜索引擎Elasticsearch Spring Boot 28
    Anycloud37D平台移植wpa_supplicant
    Stream流使用
    索引-mysql详解(三)
    Mysql高级(四)---视图/存储过程/触发器
    金色年华里的爱之旅-无忧交友
    Python 编程基础 | 第一章-预备知识 | 1.5、开发工具
    Day32——二叉树专题
  • 原文地址:https://blog.csdn.net/qq_45303986/article/details/128175899