问题标签 [qfilesystemwatcher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2470 浏览

qt - Windows 上的 Qt QFileSystemWatcher

我有以下问题:我创建了一个QFileSystemWatcher,它在 Linux 上运行和运行良好,但在 Windows 7 上没有。你能在代码中发现任何可能使它无法工作的东西吗?

谢谢。

这是初始化它的代码:

这应该是完成工作的插槽:

0 投票
1 回答
3003 浏览

c++ - “QFileSystemWatcher:添加路径失败”但仍然有效

我需要监视一个文件系统,我有一个函数可以递归地浏览文件夹和文件,并将它们的路径添加到我的 QFileSystemWatcher :

运行时,每个“watcher.addPath(iterator.filePath());” 我在控制台中有此错误消息:

QFileSystemWatcher:添加路径失败:C:/.../anyfile.ext

最奇怪的是它仍然有效。当我重命名/编辑文件或文件夹时,会触发 fileChanged 和 folderChanged 事件。

任何人都知道发生了什么?我担心我的程序不稳定,这个错误不能白白显示。

感谢阅读和帮助,

拉斐尔。

0 投票
1 回答
2674 浏览

c++ - QFileSystemWatcher::addPath 递归

大家好,我想用来QFileSystemWatcher递归地观察给定目录及其子目录的变化,但void QFileSystemWatcher::addPath ( const QString & path )没有让我这样做,所以有什么想法可以轻松完成,或者我应该自己实现它(提取所有目录和子目录和添加void QFileSystemWatcher::addPaths ( const QStringList & paths )) 下的文件?

任何帮助将不胜感激。

先感谢您。

0 投票
1 回答
2140 浏览

c++ - 如何知道文件被打开了?QT

我想知道用户是否打开了文件进行阅读(双击或使用...打开),我正在C++Windows 上使用 Qt Creator 编写应用程序,经过一些研究后我发现 QFileSystemWatche,但它让我知道只有更改发生在特定文件夹中。

void QFileSystemWatcher::fileChanged ( const QString & path ) [信号] 当指定路径上的文件被修改、重命名或从磁盘中删除时发出此信号。

如何知道文件是否被打开?或者有没有办法在打开或关闭文件时修改文件?

请有什么想法!!!

0 投票
1 回答
3714 浏览

c++ - QFileSystemWatcher:检测删除和添加的文件,但没有修改一个

我正在使用 Qt 在 Windows 上开发应用程序,我需要检测特定文件夹中的更改。因此,我使用了 QFileSystemWatcher,并将 directoryChanged 信号连接到一个函数,该函数将在发生更改时发送消息。

问题是,如果我修改文件的内容,则不会调用连接到 directoryChanged 的​​“插槽”函数,而只会在删除或添加文件或目录时调用。

但是,文档说,当“指定路径的目录被修改(例如,当添加、修改或删除文件时)或从磁盘中删除时,会发出此信号。”

有人有解释吗?提前感谢=)

0 投票
2 回答
4774 浏览

python - 为什么 QFileSystemWatcher 适用于目录而不适用于 Python 中的文件?

我从另一个 StackOverflow 答案中借用了这段代码:

问题是,file_changed无论如何,永远不会被调用。directory_changed例如,在添加文件时会可靠地调用,但更改文件内容不会导致调用 file_changed。

我调用了 的一些变体QtCore.SIGNAL('fileChanged(QString)'),例如 ,QtCore.SIGNAL('fileChanged(const QString &)')但无济于事。没有警告或错误——它根本不会触发该功能。

建议?

0 投票
1 回答
1596 浏览

c++ - Windows 上的 C++ Qt 5.0.2 QFileSystemWatcher 看不到目录更改

我对 Windows 上 Qt 5.0.2 的 QFileSystemWatcher 有疑问。

测试.cpp

DirectoryWatcher.cpp

我遇到的问题是,即使我在“C:/data/watch”文件夹中创建/移动/编辑文件,也不会调用函数“showModified”或“showChanged”,即使他们有

我确信插槽的名称是正确的,因为如果我将作为参数的插槽的名称更改为不存在的插槽,我会收到一个错误:

我还确定我作为路径添加的目录存在,因为在列出时:

我得到我的目录:

并且文档明确指出:(http://qt-project.org/doc/qt-5.0/qtcore/qfilesystemwatcher.html#addPath

很明显我错过了一些东西。如果有人能指出我的错误在哪里,或者甚至给出另一种解决方案来解决我的问题,将不胜感激。

对你的帮助表示感谢。谢谢你。

0 投票
1 回答
1083 浏览

c++ - C++ Qt QFileSystemWatcher 文件上传双

我遇到文件被上传两次到服务器的问题。

我在 Windows XP 上使用 C++ Qt 中的 QFileSystemWatcher 类在文件夹更改时发送文件文件很小(1-12kb)。

应用程序通过在文件夹更改时(在 directoryChanged 信号上)扫描文件夹来发送文件,循环浏览文件并发送我需要的文件。服务器响应一个 xml 文件,该文件返回到同一文件夹中,以供另一个应用程序处理它。

显然正在发生的事情是,在某些系统上,几乎同时有 2 个非常快的 directoryChanged 信号,并且发生了两个非常快的文件上传。

服务器正在运行 Apache 和 PHP,并且在 PHP 端有一个简单的 MUTEX,但我只是想找到问题的根源,这似乎在 Qt 端。我愿意使用另一个类、另一个库或直接 C++。

这是一些代码,我剥离了所有不相关的内容:

和 DirectoryWatcher.cpp:

谢谢你的帮助。

0 投票
1 回答
782 浏览

qt - Qt 信号驱动的尾部程序

我正在寻找创建一个简单的'tail'类型程序,它打印出附加到文件的新行。有没有办法在以下情况下捕获信号,而不是不断轮询文件统计信息以获取更新的修改日期:

  1. 该文件已附加到
  2. 该文件已重命名
  3. 出现一个给定名称的新文件

这是我需要设计的三个要求。我发现 QFileSystemWatcher 会给我这 3 个信号(我认为)......但信号很简单......没有关于发生了什么变化的细节,所以我仍然需要调用 stat. 有什么方法可以从 QFileSystemWatcher 获取此信息?

0 投票
3 回答
143 浏览

python - 为什么我按确定后程序退出

我编写了一个程序来监视目录并在用户添加文件时发出警报,该文件的特定格式为 user-name.files 它工作正常,但是当我按 ok 收到新文件正在添加的警报时,程序退出,我希望它继续运行。

我编写的以下代码将作为该应用程序中另一个 PYQT 应用程序的子进程运行。因此,我不会执行 main(),而只会实例化 SendMyFiles 对象。