#include #include #include #include #include #include QString generageRandomFileName(const QString &prefix); void onChanged(const QString &path); int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QTemporaryDir tmpDir(QLatin1Literal("qtfsw_test")); QFile tmpFile1(tmpDir.filePath(generageRandomFileName("tmpf"))); QFile tmpFile2(tmpDir.filePath(generageRandomFileName("tmpf"))); tmpFile1.open(QIODevice::ReadWrite); tmpFile2.open(QIODevice::ReadWrite); QFileSystemWatcher fsw({tmpDir.path() //tmpFile2.fileName() // comment out above line and test again.. }); QObject::connect(&fsw, &QFileSystemWatcher::directoryChanged, &onChanged); { QTextStream tmpStream1(&tmpFile1); QTextStream tmpStream2(&tmpFile2); tmpStream1 << "test"; tmpStream2 << "test"; tmpFile2.close(); tmpFile1.close(); } return a.exec(); } QString generageRandomFileName(const QString& prefix) { QString fileName = prefix + "."; for(int i = 0; i < 6; ++i) { auto num = QRandomGenerator::global()->bounded(0, 26); fileName.append(QLatin1Char(static_cast('a' + num))); } return fileName; } void onChanged(const QString &path) { qInfo() << path; }