| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 68 人关注过本帖
标题:filesystemwatcher 在 win11下信号多次触发的问题
只看楼主 加入收藏
Yio
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2024-12-26
收藏
 问题点数:20 回复次数:1 
filesystemwatcher 在 win11下信号多次触发的问题
我在win11下,使用qt5.10版本,想要实现 目录监视 的效果,我选择了filesystemwatcher
但是发现,会有情况出现大量信号触发的问题,我的大体代码如下:

我使用
connect(&folderWatcher, &QFileSystemWatcher::directoryChanged, [&](const QString &path){
        qDebug()<< "\n文件夹内容已修改 "<< path;
    });
目录发生改变,我只进行输出。

然后我目录结构为

share---|
        |---|
            |---aaa
                 |
                 |---test (空目录)
                 |---test1
                 |---test2
         
我将 share aaa test test1 test2 均加入监视,这样我就能监控下面的文件变化,但是程序启动后,
我如果删除其中目录,比如 test1 会提示 “文件夹访问被拒绝  需要提供管理员权限才能删除” (如果不启动程序,删除是正常的)
然后可能会删除失败。
但这只是个小问题,更大的问题是  如果我尝试删除 aaa 目录,我就会收到非常多的信号,因为我的终端有大量打印
都是重复的 “文件夹内容已修改  "C:/Users/sw020/Documents/share/aaa/test/"”,然后我必须停止程序才能停止打印。
因为 test 为空目录 ,所以我猜测与空目录有关? 然后我尝试只删除 test ,然后出现也有一些打印,但是很快就停止了,但是打印中的
path 值 ,不仅包含了 aaa 目录 也包含很多次 test  甚至也包含了 test1 和 test2。

所以有人明白这是为什么吗,为什么在win11下有的情况槽函数触发会有问题。
搜索更多相关主题的帖子: 信号 目录 test 删除 触发 
前天 09:34
Yio
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2024-12-26
收藏
得分:0 
前天 10:26
快速回复:filesystemwatcher 在 win11下信号多次触发的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016345 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved