gpt4 book ai didi

c++ - Qt5::QFileSystemWatcher 在文件修改时调用

转载 作者:行者123 更新时间:2023-11-30 05:22:33 25 4
gpt4 key购买 nike

QFileSystemWatcher watcher;
watcher.addPath("C:/watch");

QStringList directoryList = watcher.directories();
Q_FOREACH(QString directory, directoryList)
qDebug() << "Directory name" << directory <<"\n";

DirectoryWatcher* dw = new DirectoryWatcher;

QObject::connect(
&watcher, SIGNAL(directoryChanged(const QString&)),
dw, SLOT(modified(const QString&))
);

QObject::connect(
&watcher, SIGNAL(fileChanged(QString)),
dw, SLOT(modified(QString))
);

在此示例中,modified() 方法调用时;

  • 创建了一个新文件
  • 已删除文件
  • 重命名的文件

但是,如果我打开这个文件夹中的文件并修改内容,保存后,什么也没有。

如果我将该特定文件添加到 addPath("c:/watch/me.txt") 之类的路径,然后在修改后调用它。

但是您可能知道,watcher 是有限制的。所以我不能每次都看几百个文件。

如何在文件修改时调用 modified() 方法?

最佳答案

如果你想要一个跨平台的解决方案,使用 Qt5::QFileSystemWatcher,除了将你正在监视的目录中的每个文件添加到 QFileSystemWatcher 对象之外别无他法,希望你不会达到文件描述符限制.

如果您想使用特定于操作系统的方法来监视文件系统,您可以从这个 S/O 答案中获得一些提示:https://stackoverflow.com/a/931165/228634但我很确定你也会有同样的限制。

关于c++ - Qt5::QFileSystemWatcher 在文件修改时调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com