Voici le problème: Je surveille un répertoire en utilisant la fonction Win32 API ReadDirectoryChangesW. Et je dois faire la distinction entre les fichiers nouvellement créés et les fichiers modifiés. Mais il y a des problèmes ... comme toujours :(Win32 C++ ReadDirectoryChangesW "création" et "modification" de la détection de différence de fichier?
Cas:
- Je surveille répertoire nouveau/modifier (
FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_SIZE
) Problème:. Après la création de fichiers, nouvel événement de fichier + modifier événement de fichier est mais je n'en ai besoin que d'un seul Comment puis-je éviter cela? Quand le fichier est modifié, je reçois ce que je veux :). - Je contrôle le répertoire uniquement pour le nouveau fichier (
FILE_NOTIFY_CHANGE_FILE_NAME
) - AUCUN PROBLÈME. - Je contrôle le répertoire uniquement pour le fichier de modification (
FILE_NOTIFY_CHANGE_SIZE
). Problème: Lors de la création d'un nouveau fichier, une action de modification est déclenchée avec un événement de création de fichier. Comment puis-je éviter cela?
Bien sûr, j'ai implémenté quelques solutions de contournement. Mais, je veux savoir s'il y a une manière élégante de traiter les problèmes que j'ai décrits.
Merci d'avance!
Cela aiderait-il à ignorer les modifications de taille lorsque la taille passe de 0 à non nulle? –
Lors de l'événement, je ne connais pas la taille du fichier, je sais seulement que le fichier est modifié. – dmitril
la seule chose qui aide pour le moment est d'ignorer l'événement suivant, en plaçant une minuterie de 1 seconde et de l'ignorer. Mais c'est un travail autour, pas une solution :) – dmitril