1
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()方法在调用when时调用;Qt5 :: QFileSystemWatcher在文件修改时调用
- 一个新的文件创建
- 文件删除
- 文件改名为
但是,如果我在此文件夹中打开一个文件,并修改内容后,我保存它,什么叫。
如果我将该特定文件添加到像addPath("c:/watch/me.txt")
这样的路径,那么在修改它之后会被调用。
但是你可能知道,观察者有一个限制。所以我无法每次看数百个文件。
如何在文件修改上调用modified()方法?
感谢您的解释。请问,我应该做一个操作系统特定的解决方案,我会观看1.000-5.000左右的文件,或者我应该像'checkFileDates()'方法一样检查文件是否每隔x分钟更改一次?哪一个是正确的?或者至少针对特定于Windows的操作系统以及其他人的跨平台。 – xangr
我会首先实现一个跨平台的解决方案,按照你的建议“checkFileDates()”。如果处理速度太慢,请实施特定于操作系统的解决方案。 – Tryum
感谢您的回复!将按照你的建议去做。你的答案已经被接受。 – xangr