OVH Cloud OVH Cloud

Doublage de l'évènement avec FileSystemWatcher

4 réponses
Avatar
Christian Hugoud
Bonjour à tous,

Je scrute les modifs d'un fichier ini avec un objet FileSystemWatcher créé
en dynamique.
Le problème est qu'il m'envoie en double l'évènement de changement.

Voici mon code :

m_Watcher = New FileSystemWatcher()

With m_Watcher
.Path = m_IniFilePath
.Filter = m_IniFileName
.NotifyFilter = NotifyFilters.LastWrite
End With

' Add event handlers.
AddHandler m_Watcher.Changed, AddressOf OnChanged

'starts the hook
m_Watcher.EnableRaisingEvents = True

Maintenant le sub :

Private Sub OnChanged(ByVal source As Object, ByVal e As
FileSystemEventArgs)
Print(CStr(Now) + " : " + "File: " & e.FullPath)
End Sub

Voici la fenêtre de sortie :
09/02/2006 08:21:58 : File: C:\Documents and Settings\Christian\Application
Data\Test1\Test1.ini
09/02/2006 08:21:58 : File: C:\Documents and Settings\Christian\Application
Data\Test1\Test1.ini
09/02/2006 08:22:03 : File: C:\Documents and Settings\Christian\Application
Data\Test1\Test1.ini
09/02/2006 08:22:03 : File: C:\Documents and Settings\Christian\Application
Data\Test1\Test1.ini

Des idées ?

Christian

4 réponses

Avatar
TroXsA
Bonjour

Sa me fait la meme chose et j'en ai aucune idée


--

Mail : http://cerbermail.com/?rIXgaw9Xsl
Site : http://troxsa.info


"Christian Hugoud" a écrit dans le message de news:
OGfo$
Bonjour à tous,

Je scrute les modifs d'un fichier ini avec un objet FileSystemWatcher créé
en dynamique.
Le problème est qu'il m'envoie en double l'évènement de changement.

Voici mon code :

m_Watcher = New FileSystemWatcher()

With m_Watcher
.Path = m_IniFilePath
.Filter = m_IniFileName
.NotifyFilter = NotifyFilters.LastWrite
End With

' Add event handlers.
AddHandler m_Watcher.Changed, AddressOf OnChanged

'starts the hook
m_Watcher.EnableRaisingEvents = True

Maintenant le sub :

Private Sub OnChanged(ByVal source As Object, ByVal e As
FileSystemEventArgs)
Print(CStr(Now) + " : " + "File: " & e.FullPath)
End Sub

Voici la fenêtre de sortie :
09/02/2006 08:21:58 : File: C:Documents and
SettingsChristianApplication DataTest1Test1.ini
09/02/2006 08:21:58 : File: C:Documents and
SettingsChristianApplication DataTest1Test1.ini
09/02/2006 08:22:03 : File: C:Documents and
SettingsChristianApplication DataTest1Test1.ini
09/02/2006 08:22:03 : File: C:Documents and
SettingsChristianApplication DataTest1Test1.ini

Des idées ?

Christian




Avatar
Titeuf
Bonjour,
J'ai également été confronté au meme soucis.
Le seul moyen que j'ai trouvé c'est d'arreter et de redémarrer la
surveillance.

Public Sub OnChanged(ByVal source As Object, ByVal e As FileSystemEventArgs)

'blalabla.....ton code
'et à la fin tu arrête et rédémarre la surveillance

FileSystemWatcherINI.EnableRaisingEvents = False
FileSystemWatcherINI.EnableRaisingEvents = True

End Sub
Avatar
Christian Hugoud
Bien.

Je vois que je ne suis pas seul. Merci pour toutes ces infos.

Christian

"Titeuf" a écrit dans le message de news:

Bonjour,
J'ai également été confronté au meme soucis.
Le seul moyen que j'ai trouvé c'est d'arreter et de redémarrer la
surveillance.

Public Sub OnChanged(ByVal source As Object, ByVal e As
FileSystemEventArgs)

'blalabla.....ton code
'et à la fin tu arrête et rédémarre la surveillance

FileSystemWatcherINI.EnableRaisingEvents = False
FileSystemWatcherINI.EnableRaisingEvents = True

End Sub



Avatar
TroXsA
Pas béte !
Effectivement c'est une solution de contournement :)

Merci aussi ;)


--

Mail : http://cerbermail.com/?rIXgaw9Xsl
Site : http://troxsa.info


"Titeuf" a écrit dans le message de news:

Bonjour,
J'ai également été confronté au meme soucis.
Le seul moyen que j'ai trouvé c'est d'arreter et de redémarrer la
surveillance.

Public Sub OnChanged(ByVal source As Object, ByVal e As
FileSystemEventArgs)

'blalabla.....ton code
'et à la fin tu arrête et rédémarre la surveillance

FileSystemWatcherINI.EnableRaisingEvents = False
FileSystemWatcherINI.EnableRaisingEvents = True

End Sub