QFileSystemWatcher Class
La classe QFileSystemWatcher fournit une interface permettant de surveiller les modifications apportées aux fichiers et aux répertoires. En savoir plus...
| En-tête : | #include <QFileSystemWatcher> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Hérite de : | QObject |
- Liste de tous les membres, y compris les membres hérités
- QFileSystemWatcher fait partie des modules « Entrée/Sortie » et « Réseau ».
Remarque : 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 afin de détecter les modifications apportées aux fichiers et aux répertoires en surveillant une liste de chemins d'accès spécifiés.
Appelez la fonction ` addPath()` pour surveiller un fichier ou un répertoire particulier. Vous pouvez ajouter plusieurs chemins d’accès à l’aide de la fonction ` addPaths()`. Les chemins d’accès existants peuvent être supprimés à l’aide des fonctions ` removePath()` et ` removePaths()`.
QFileSystemWatcher examine chaque chemin d’accès qui lui est ajouté. Les fichiers ajoutés au QFileSystemWatcher sont accessibles via la fonction ` files()`, et les répertoires via 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 dès qu’ils ont été renommés ou supprimés du disque, et les répertoires dès qu’ils ont été supprimés du disque.
- Remarques:
- Sur les systèmes exécutant un noyau Linux ne prenant pas en charge inotify, les systèmes de fichiers contenant des chemins surveillés ne peuvent pas être démontés.
- La surveillance des modifications apportées aux fichiers et répertoires consomme des ressources système. Cela implique qu’il existe une limite au nombre de fichiers et de répertoires que votre processus peut surveiller simultanément. Sur toutes les variantes de BSD, par exemple, un descripteur de fichier ouvert est requis pour chaque fichier surveillé. Certains systèmes limitent par défaut le nombre de descripteurs de fichier ouverts à 256. Cela signifie que les fonctions ` addPath()` et ` addPaths()` échoueront si votre processus tente d’ajouter plus de 256 fichiers ou répertoires au surveilleur de système de fichiers. Notez également que votre processus peut avoir d’autres descripteurs de fichiers ouverts en plus de ceux correspondant aux fichiers surveillés, et que ces autres descripteurs ouverts sont également pris en compte dans le total. macOS utilise un backend différent et ne rencontre pas ce problème.
Documentation des fonctions membres
QFileSystemWatcher::QFileSystemWatcher(QObject *parent = nullptr)
Crée un nouvel objet de surveillance du système de fichiers avec l'parent on fournie.
QFileSystemWatcher::QFileSystemWatcher(const QStringList &paths, QObject *parent = nullptr)
Crée un nouvel objet d'écouteur de système de fichiers avec l'parent on fournie, qui surveille la liste d'paths s spécifiée.
[virtual noexcept] QFileSystemWatcher::~QFileSystemWatcher()
Supprime le surveillant du système de fichiers.
bool QFileSystemWatcher::addPath(const QString &path)
Ajoute path au surveilleur 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 le surveilleur du système de fichiers.
Si path spécifie un répertoire, le signal directoryChanged() sera émis lorsque path sera modifié ou supprimé du disque ; sinon, le signal fileChanged() sera émis lorsque path sera modifié, renommé ou supprimé.
Si la surveillance a abouti, la valeur true est renvoyée.
Les raisons d’un échec de la 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 plateforme en impose une.
Remarque : il peut exister une limite, propre au système, concernant le nombre de fichiers et de répertoires pouvant être surveillés simultanément. Si cette limite est atteinte, path ne sera pas surveillé et la valeur « false » est renvoyée.
Voir également addPaths() et removePath().
QStringList QFileSystemWatcher::addPaths(const QStringList &paths)
Ajoute chaque chemin d'accès figurant dans ` paths ` au surveilleur du système de fichiers. Les chemins d'accès ne sont pas ajoutés s'ils n'existent pas ou s'ils sont déjà surveillés par le surveilleur 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 ; dans le cas contraire, 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 possède une.
Remarque : il peut exister une limite, propre au système, concernant le nombre de fichiers et de répertoires pouvant être surveillés simultanément. Si cette limite est atteinte, les « paths » excédentaires ne seront pas surveillés et seront ajoutés à la liste « QStringList » renvoyée.
Voir également addPath() et removePaths().
QStringList QFileSystemWatcher::directories() const
Renvoie une liste des chemins d'accès aux répertoires surveillés.
Voir aussi files().
[private signal] void QFileSystemWatcher::directoryChanged(const QString &path)
Ce signal est émis lorsque le répertoire situé à l'path spécifiée est modifié (par exemple, lorsqu'un fichier est ajouté ou supprimé) ou supprimé du disque. Notez que s'il y a plusieurs modifications sur une courte période, certaines d'entre elles peuvent ne pas déclencher ce signal. Cependant, la dernière modification de la séquence en génère toujours un.
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'path indiquée est modifié, renommé ou supprimé du disque.
Remarque : par mesure de sécurité, de nombreuses applications enregistrent un fichier ouvert en créant un nouveau fichier, puis en supprimant l'ancien. Dans votre fonction de slot, vous pouvez vérifier la valeur de ` watcher.files().contains(path)`. Si celle-ci renvoie ` false`, vérifiez si le fichier existe toujours, puis appelez ` addPath() ` pour continuer à le surveiller.
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 également directoryChanged().
QStringList QFileSystemWatcher::files() const
Renvoie une liste des chemins d'accès aux fichiers surveillés.
Voir aussi directories().
bool QFileSystemWatcher::removePath(const QString &path)
Supprime l'path spécifiée du système de surveillance du système de fichiers.
Si la surveillance est supprimée avec succès, la valeur true est renvoyée.
Les raisons pour lesquelles la suppression d’une surveillance peut échouer dépendent généralement du système, mais peuvent être dues, par exemple, au fait que le chemin d’accès a déjà été supprimé.
Voir également ` removePaths()` et ` addPath()`.
QStringList QFileSystemWatcher::removePaths(const QStringList &paths)
Supprime l'paths spécifiée du système de surveillance du système de fichiers.
La valeur renvoyée est une liste des chemins d'accès dont la surveillance n'a pas pu être désactivée correctement.
Les raisons de l’échec de la suppression d’une surveillance dépendent généralement du système, mais peuvent être dues, par exemple, au fait que le chemin d’accès a déjà été supprimé.
Voir également ` 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.