Qt_IM_47 - 8BitsCoding/RobotMentor GitHub Wiki


// main.cpp
#include <QtCore/QCoreApplication>

#include "Watcher.h"

int main(int argc, char *argv[])
{
	QCoreApplication a(argc, argv);

	Watcher w;


	return a.exec();
}
// Watcher.h
#pragma once

#include <QObject>
#include <qdebug.h>
#include <qdir.h>
#include <qfilesystemwatcher.h>

class Watcher : public QObject
{
	Q_OBJECT

public:
	explicit Watcher(QObject *parent = nullptr);
	~Watcher();

signals:

public slots:
	void fileChanged(const QString & path);
	void directoryChanged(const QString& path);

private:
	QFileSystemWatcher fsw;

};
// Watcher.cpp
#include "Watcher.h"

Watcher::Watcher(QObject *parent)
	: QObject(parent)
{
	fsw.addPath(QDir::currentPath());
	fsw.addPath(QDir::currentPath() + QDir::separator() + "test.txt");

	connect(&fsw, &QFileSystemWatcher::fileChanged, this, &Watcher::fileChanged);
	connect(&fsw, &QFileSystemWatcher::directoryChanged, this, &Watcher::directoryChanged);
}

Watcher::~Watcher()
{
}

void Watcher::fileChanged(const QString& path)
{
	qInfo() << "File changed: " << path;

	if (fsw.files().length()) {
		qInfo() << "Files that have changed: ";
		foreach(QString file, fsw.files()) {
			qInfo() << file;
		}
	}
}

void Watcher::directoryChanged(const QString& path)
{
	qInfo() << "directory changed: " << path;

	if (fsw.files().length()) {
		qInfo() << "Dir that have changed: ";
		foreach(QString dir, fsw.directories()) {
			qInfo() << dir;
		}
	}
}
⚠️ **GitHub.com Fallback** ⚠️