FileSystemWatcher

klingfilm Messages postés 36 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 23 août 2007 - 10 août 2007 à 03:55
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 10 août 2007 à 08:09
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 août 2007 à 08:09
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
Rejoignez-nous