Avec le système d'exploitation Linux, il existe le sous-système ionotify qui notifie à une application les modifications apportées au système de fichiers.
Cependant, je suis principalement un utilisateur Windows, alors je me demandais s'il existe un moyen similaire de surveiller les modifications du système de fichiers?
Réponses:
Voir l' API FindFirstChangeNotification ou l'équivalent .NET FileSystemWatcher
la source
Si vous utilisez .net , utilisez
FileSystemWatcher
. Plus d'informations ici: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspxSi vous utilisez C , l' utilisation
FindFirstChangeNotification
,FindNextChangeNotification
,ReadDirectoryChangesW
. Plus d'informations ici: http://msdn.microsoft.com/en-us/library/aa365261(VS.85).aspxSous OSX , l'API pertinente est l'
fsevents
API.Ils sont tous subtilement différents les uns des autres, et ils ont tous une fiabilité douteuse dans les cas extrêmes. En général, vous ne pouvez pas compter sur ces API pour une vue complète de tous les changements 100% du temps. La plupart des utilisateurs de la surveillance du système de fichiers le combinent avec des analyses périodiques pour compenser les informations perdues ou incomplètes de l'API push.
la source
jetez un oeil à ceci: inotify-win, un port de l'outil inotifywait pour Windows
et aussi ceci: inotify-tools
la source
JNotify ou FileMon de Microsoft.
la source
Un peu tard mais ...
Windows dispose d'une fonction similaire aux événements OSX dans laquelle vous pouvez surveiller les événements sans exécuter d'application. Le journal Windows USN effectue le suivi de toutes les modifications de fichiers. Jeffrey Richter (auteur de Advanced Windows) a écrit un article formidable avec des exemples de travail pour MSDN Journal. Mise à jour : article maintenant sur archive.org puisque MSJ n'est plus en ligne chez MS.
Documentation MSDN pour les journaux de modification USN.
Les journaux de modifications USN sont probablement meilleurs si vous créez des applications telles que des outils de sauvegarde ou des index qui doivent surveiller des volumes entiers.
la source
FileSystemWatcher
|FindFirstChangeNotification
PhillipBrandonHolmes était en parlant de ?FileSystemWatcher () n'est pas fiable principalement en raison du fait que la gestion des erreurs pour le tampon de l'observateur est plus ou moins incomplète. En raison d'un manque de chemin d'accès et d'informations détaillées sur la gestion des erreurs, Microsoft ne vous donne aucun moyen de récupérer ou d'interroger manuellement le répertoire de travail.
Le JNotify pour Windows n'est pas fiable non plus car ce bogue ^ dérive de win32. JNotify utilise win32. Donc, ce n'est pas différent de FileSystemWatcher ().
la source
J'ai fait un peu de recherche, je me souviens avoir vu quelque chose de similaire pour Windows. Il existe FileSystemWatcher pour .NET. Son principalement pour NT ou XP et en avant.
la source
essayez la bibliothèque de notification de fichier Java
la source