FindFirstChangeNotification est-elle la meilleure API à utiliser pour la notification de modification du système de fichiers sous Windows ?

StackOverflow https://stackoverflow.com/questions/16615

Question

Je suis nouveau dans la programmation Windows et j'essaie d'être informé de toutes les modifications apportées au système de fichiers (similaires aux informations affichées par FileMon de SysInternals, mais via une API).Est-ce qu'une FindFirstChangeNotification pour chaque lecteur (non réseau, non remplacé) est mon meilleur pari ou existe-t-il d'autres API C/C++ plus appropriées ?

Était-ce utile?

La solution

FindFirstChangeNotification c'est bien, mais pour une puissance ultime légèrement plus élevée, vous devriez utiliser ReadDirectoryChangesW. (En fait, c'est même recommandé dans la documentation !)

Il ne nécessite pas de pointeur de fonction, il vous oblige à décoder manuellement un tampon brut, il utilise des noms de fichiers Unicode, mais il est généralement meilleur et plus flexible.

D'un autre côté, si vous voulez faire ce que fait FileMon, vous devriez probablement faire ce que fait FileMon et utiliser IFS pour créer et installer un filtre de système de fichiers.

Autres conseils

Il existe d'autres façons de le faire, mais la plupart d'entre elles impliquent des efforts de votre part (ou prennent des performances de votre application, ou vous devez bloquer un thread pour les utiliser, etc.).FindFirstChangeNotification est un peu compliqué si vous n'êtes pas habitué à gérer des pointeurs de fonction, etc., mais il a le mérite de permettre au système d'exploitation de faire l'essentiel du travail à votre place.

En fait, FileSystemWatcher fonctionne parfaitement avec les lecteurs réseau partagés.Je l'utilise actuellement dans une application qui, entre autres, surveille les modifications du système de fichiers.(www.tabbles.net).

Vous pouvez utiliser la classe FileSystemWatcher.Très efficace mais ne peut pas fonctionner avec les lecteurs partagés en réseau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top