FileSystemWatcher

Signaler
Messages postés
36
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
23 août 2007
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour a tous,
Je tente d'utiliser le FilseSystemWatcher pour detecter la creation d'un fichier .txt defini, afin de le lire et de le detriure tout de suite apres. Cependant, ce n'est pas mon application qui cree ce fichier. C'est une autre application qui cree des fichiers de sauvegare en .txt. Mon probleme est le suivant, mon FSWatcher detecte la premiere creation du fichier et le supprime Mais par la suite,  il ne detecte plus les evenements created ou meme changed.

J'ai mis en bleu les parties du code importantes

Private Sub BtnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnStart.Click
        Dim appToolsPreset As Process
        Dim AppRun As String
        Dim objStreamReader As StreamReader
        'JE DECLARE DES LE DEBUT MON WATCHER
         Dim Watcher As FileSystemWatcher
        Watcher = New FileSystemWatcher()
        AddHandler Watcher.Created, AddressOf OnCreate
        Watcher.EnableRaisingEvents = True
      'JE VERIFIE SI LE FICHIER SOURCEPATH CONTIENT DE L'INFORMATION PUISQUE C'EST LUI QUI CONTIENT LE REPERTOIRE A ESPIONNER


        If CheckFileExistOrNotEmpty(SourcePath) = True Then
            Dim StrRead2 As StreamReader
            StrRead2 = New StreamReader(SourcePath)
            PathEzVision = StrRead2.ReadLine()
            StrRead2.Close()
            Watcher.Path = PathEzVision
            Watcher.Filter = "EzVisionPreset.txt"


            If CheckFileExistOrNotEmpty(ExePath) = True Then
                objStreamReader = New StreamReader(ExePath)
                AppRun = objStreamReader.ReadLine()
                objStreamReader.Close()
         'JE LANCE L'APPLICATION QUI DOIT CREER LE FICHIER DE SAUVEGARDE QUE JE LIS ET DETRUIT A CHAQUE FOIS POUR EN RECUPERER L'INFORMATION
                appToolsPreset = Process.Start(AppRun)
                appToolsPreset.WaitForExit()
                Converter()
                File.Delete(Application.StartupPath & "\TempFileInput.txt")
                Me.Close()
            Else
                MessageBox.Show("No .exe file corresponding. Select Application Executable File (Path).")
                TabControl1.SelectedIndex = 1
            End If
        Else
            MessageBox.Show("No Source file corresponding. Select Source Directory for EzVisionPreset.txt .")
            TabControl1.SelectedIndex = 1
        End If
    End Sub

Je ne comprends pas pourquoi quand je simule la creation du fichier avec un petit programme maison tout fonctionne a merveille. Alors que si c'est le logiciel qui le cree, mon watcher ne marche que le premier coup.

Merci

1 réponse

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
ton objet est déclaré dans ta fonction BtnStart_Click, sa portée est ultra limitée, et l'objet détruit dès que tu quittes la sub en question...

Renfield
Admin CodeS-SourceS- MVP Visual Basic