QFileSystemWatcher Class
La classe QFileSystemWatcher fournit une interface permettant de surveiller les modifications apportées aux fichiers et aux répertoires. Plus d'informations...
| En-tête : | #include <QFileSystemWatcher> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Héritages : | QObject |
- Liste de tous les membres, y compris les membres hérités
- QFileSystemWatcher fait partie de Input/Output et Networking.
Note : Toutes les fonctions de cette classe sont réentrantes.
Fonctions publiques
| QFileSystemWatcher(QObject *parent = nullptr) | |
| QFileSystemWatcher(const QStringList &paths, QObject *parent = nullptr) | |
| virtual | ~QFileSystemWatcher() |
| bool | addPath(const QString &path) |
| QStringList | addPaths(const QStringList &paths) |
| QStringList | directories() const |
| QStringList | files() const |
| bool | removePath(const QString &path) |
| QStringList | removePaths(const QStringList &paths) |
Signaux
| void | directoryChanged(const QString &path) |
| void | fileChanged(const QString &path) |
Description détaillée
QFileSystemWatcher surveille le système de fichiers pour détecter les modifications apportées aux fichiers et aux répertoires en observant une liste de chemins spécifiés.
Appelez addPath() pour surveiller un fichier ou un répertoire particulier. Plusieurs chemins peuvent être ajoutés à l'aide de la fonction addPaths(). Les chemins existants peuvent être supprimés à l'aide des fonctions removePath() et removePaths().
QFileSystemWatcher examine chaque chemin qui lui est ajouté. Les fichiers qui ont été ajoutés au QFileSystemWatcher sont accessibles à l'aide de la fonction files(), et les répertoires à l'aide de la fonction directories().
Le signal fileChanged() est émis lorsqu'un fichier a été modifié, renommé ou supprimé du disque. De même, le signal directoryChanged() est émis lorsqu'un répertoire ou son contenu est modifié ou supprimé. Notez que QFileSystemWatcher cesse de surveiller les fichiers une fois qu'ils ont été renommés ou supprimés du disque, et les répertoires une fois qu'ils ont été supprimés du disque.
- Remarques:
- Sur les systèmes utilisant un noyau Linux ne prenant pas en charge inotify, les systèmes de fichiers contenant des chemins d'accès surveillés ne peuvent pas être démontés.
- Le fait de surveiller les modifications apportées aux fichiers et aux répertoires consomme des ressources système. Il existe donc une limite au nombre de fichiers et de répertoires que votre processus peut surveiller simultanément. Sur toutes les variantes BSD, par exemple, un descripteur de fichier ouvert est nécessaire pour chaque fichier surveillé. Certains systèmes limitent le nombre de descripteurs de fichiers ouverts à 256 par défaut. Cela signifie que addPath() et addPaths() échoueront si votre processus tente d'ajouter plus de 256 fichiers ou répertoires à la surveillance du système de fichiers. Notez également que votre processus peut avoir d'autres descripteurs de fichiers ouverts en plus de ceux des fichiers surveillés, et que ces autres descripteurs ouverts comptent également dans le total. macOS utilise un backend différent et ne souffre pas de ce problème.
Documentation sur les fonctions membres
QFileSystemWatcher::QFileSystemWatcher(QObject *parent = nullptr)
Construit un nouvel objet de surveillance du système de fichiers avec l'adresse parent.
QFileSystemWatcher::QFileSystemWatcher(const QStringList &paths, QObject *parent = nullptr)
Construit un nouvel objet de surveillance du système de fichiers avec l'adresse parent donnée, qui surveille la liste paths spécifiée.
[virtual noexcept] QFileSystemWatcher::~QFileSystemWatcher()
Détruit l'observateur du système de fichiers.
bool QFileSystemWatcher::addPath(const QString &path)
Ajoute path à l'observateur du système de fichiers si path existe. Le chemin n'est pas ajouté s'il n'existe pas ou s'il est déjà surveillé par l'observateur du système de fichiers.
Si path spécifie un répertoire, le signal directoryChanged() est émis lorsque path est modifié ou supprimé du disque ; sinon, le signal fileChanged() est émis lorsque path est modifié, renommé ou supprimé.
Si la surveillance a réussi, true est renvoyé.
Les raisons de l'échec d'une surveillance dépendent généralement du système, mais peuvent inclure l'inexistence de la ressource, des échecs d'accès ou la limite du nombre total de surveillances, si la plate-forme en a une.
Remarque : le nombre de fichiers et de répertoires pouvant être surveillés simultanément peut être limité en fonction du système. Si cette limite est atteinte, path ne sera pas surveillé et false sera renvoyé.
Voir aussi addPaths() et removePath().
QStringList QFileSystemWatcher::addPaths(const QStringList &paths)
Ajoute chaque chemin d'accès dans paths à l'observateur du système de fichiers. Les chemins ne sont pas ajoutés s'ils n'existent pas ou s'ils sont déjà surveillés par l'observateur du système de fichiers.
Si un chemin spécifie un répertoire, le signal directoryChanged() est émis lorsque le chemin est modifié ou supprimé du disque ; sinon, le signal fileChanged() est émis lorsque le chemin est modifié, renommé ou supprimé.
La valeur de retour est une liste des chemins qui n'ont pas pu être surveillés.
Les raisons d'un échec de surveillance dépendent généralement du système, mais peuvent inclure l'inexistence de la ressource, des échecs d'accès ou la limite du nombre total de surveillances, si la plate-forme en a une.
Remarque : le nombre de fichiers et de répertoires pouvant être surveillés simultanément peut être limité en fonction du système. Si cette limite est atteinte, les paths excédentaires ne seront pas surveillés et seront ajoutés aux QStringList renvoyés.
Voir également addPath() et removePaths().
QStringList QFileSystemWatcher::directories() const
Renvoie une liste de chemins d'accès aux répertoires qui sont surveillés.
Voir aussi files().
[private signal] void QFileSystemWatcher::directoryChanged(const QString &path)
Ce signal est émis lorsque le répertoire situé à l'adresse path est modifié (par exemple, lorsqu'un fichier est ajouté ou supprimé) ou supprimé du disque. Notez que s'il y a plusieurs modifications au cours d'une courte période, certaines d'entre elles peuvent ne pas émettre ce signal. Toutefois, la dernière modification de la séquence de modifications émettra toujours ce signal.
Remarque : il s'agit d'un signal privé. Il peut être utilisé dans les connexions de signaux mais ne peut pas être émis par l'utilisateur.
Voir aussi fileChanged().
[private signal] void QFileSystemWatcher::fileChanged(const QString &path)
Ce signal est émis lorsque le fichier situé à l'adresse path est modifié, renommé ou supprimé du disque.
Remarque : par mesure de sécurité, de nombreuses applications sauvegardent un fichier ouvert en écrivant un nouveau fichier, puis en supprimant l'ancien. Dans votre fonction slot, vous pouvez vérifier watcher.files().contains(path). S'il renvoie false, vérifiez si le fichier existe toujours, puis appelez addPath() pour continuer à le regarder.
Remarque : il s'agit d'un signal privé. Il peut être utilisé dans des connexions de signaux mais ne peut pas être émis par l'utilisateur.
Voir aussi directoryChanged().
QStringList QFileSystemWatcher::files() const
Renvoie une liste de chemins d'accès aux fichiers en cours d'observation.
Voir aussi directories().
bool QFileSystemWatcher::removePath(const QString &path)
Supprime l'adresse path spécifiée de l'observateur du système de fichiers.
Si l'observateur est supprimé avec succès, true est renvoyé.
Les raisons de l'échec de la suppression de l'observateur dépendent généralement du système, mais peuvent être dues au fait que le chemin a déjà été supprimé, par exemple.
Voir aussi removePaths() et addPath().
QStringList QFileSystemWatcher::removePaths(const QStringList &paths)
Supprime l'adresse paths spécifiée de l'observateur du système de fichiers.
La valeur de retour est une liste des chemins qui n'ont pas pu être désobservés avec succès.
Les raisons de l'échec de la suppression de l'observateur dépendent généralement du système, mais peuvent être dues au fait que le chemin a déjà été supprimé, par exemple.
Voir aussi removePath() et addPaths().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.