2010-09-24 11 views

Répondre

2

Si vous connaissez le nom du fichier qui est changé, vous pouvez l'examiner est creation and last write times par rapport de GetFileTime. Si vous copiez un fichier d'un répertoire à un autre, vous ne modifiez pas le fichier, les dernières durées d'écriture resteront donc inchangées.

+0

Merci Oleg, mais il semble que je ne peux pas obtenir le nom du fichier source dans les événements de notification déclenchés par l'API SHChangeNotifyRegister ... –

+0

@Edwin: Vous pouvez télécharger l'exemple "Common Notify Watcher Sample" du http : //code.msdn.microsoft.com/shellapplication. Il montre comment voir le chemin du fichier modilié. En cas de copie du nouveau fichier dans le répertoire d'observation, vous recevrez le message 'SHCNE_CREATE' avec le nom du nouveau fichier. Vous devez avoir uniquement le nom de fichier ** destination ** (le nom sur le nouveau fichier). Vous obtenez son heure de création et la dernière heure d'écriture. Le fichier a été copié, l'heure de création sera ** plus récente ** (l'heure de l'adaptation du fichier) comme la dernière heure d'écriture qui reste inchangée. – Oleg

+0

Salut Oleg, merci beaucoup, même si je n'ai pas essayé mais je pense que c'est logique! –

0

SHChangeNotify n'est pas une API qui vous indique que quelque chose a changé, mais une API qui vous dire la coquille que vous avez changé quelque chose et il devrait mettre à jour en conséquence ses vues.

Peut-être ce que vous voulez est ReadDirectoryChangesW

+0

Salut Stefan, désolé pour la confusion! Je voulais écrire SHChangeNotifyRegister: P –

Questions connexes