2008-12-10 7 views
1

C revenir # FileSystemWatcher ne se coince pas Revert Perforce. Cela fonctionne bien quand le même fichier est modifié. Cela pose un problème parce que le revert modifie le fichier, mais FileSystemWatcher ne soit pas informé.C# FileSystemWatcher ne se coince pas Perforce

Comment regardez-vous pour un Perforce revenir?

Merci.

Répondre

1

Avez-vous réglé les NotifyFilters de façon appropriée? A partir de l'aide de FileSystemWatcher ...

Il existe plusieurs types de modifications que vous pouvez surveiller dans un répertoire ou un fichier. Par exemple, vous pouvez surveiller les changements dans les attributs, la date et l'heure LastWrite, ou la taille des fichiers ou des répertoires. Cela est effectué en définissant la propriété NotifyFilter à l'une des valeurs NotifyFilters.

Un revert Perforce peut également revenir à l'époque LastWrite précédente qui, si vous cherchez seulement pour une plus récente horodatage, ne déclenche pas une mise à jour.

0

J'ai essayé un exécutable échantillon de CodeProject, il semble fonctionner, doit être mon code qui est mauvais ...

0

Je soupçonne que le rapport Perforce fait une copie d'un fichier temporaire, il est donc pas en train d'écrire à la fichier, mais en copiant dans un nouveau fichier et en soufflant le précédent. Comme le fichier n'est pas "écrit", vous n'obtenez pas la notification. Il ne vous aide pas si :(

3

En plus de vérifier les NotifyFilters, assurez-vous que vous attacher des gestionnaires à tous les événements que le FileSystemWatcher a. FileSystemWatcher a des événements pour Changed, créés, supprimés et Rebaptisé.

Si vous n'attacher à l'événement Changed et ne pas attraper des événements, il sonne comme Perforce pourrait être supprimé et recréé le fichier. Si tel est le cas, ajouter des gestionnaires à la Deleted et les événements Changed.

Le NotifyFilters documentation sur msdn a exemple de code montrant la manipulation pour tous les événements.