Bonjour, Bonsoir,

Souhaitant "monitorer" une liste de dossier (qui peut évoluer...), je crée dynamiquement une instance de composant FileSystemWatcher pour chaque dossier de la liste.

Mon soucis se présente si ma liste évolue (ajout d'un dossier à monitorer dans la liste):

-Comment supprimer toutes les instances de Filesystemwatcher de mon formulaire pour les recréer pour chaque dossier.

J'espère que j'ai été clair...

Merci d'avance !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
Public Sub initFsWatcher_PNG(ByVal FolderPAth As String)
 
        Dim FSW As New FileSystemWatcher
        ' Répertoire à surveiller
        FSW.Path = FolderPAth
        ' Surveille les sous répertoires
        FSW.IncludeSubdirectories = False
        ' Surveille les images PNG
        FSW.Filter = "*.PNG"
 
        ' Surveille les types d'évènements suivants
        FSW.NotifyFilter = (NotifyFilters.Attributes _
                                    Or NotifyFilters.CreationTime _
                                    Or NotifyFilters.DirectoryName _
                                    Or NotifyFilters.FileName _
                                    Or NotifyFilters.LastAccess _
                                    Or NotifyFilters.LastWrite _
                                    Or NotifyFilters.Security _
                                    Or NotifyFilters.Size)
 
        ' Active la levée d'évènements par le FileSystemWatcher
        FSW.EnableRaisingEvents = True
 
        AddHandler FSW.Created, AddressOf myFsWatcher_Created
        AddHandler FSW.Deleted, AddressOf myFsWatcher_deleted
 
 
    End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
   Private Sub Init_FSW()
 
        'on initialise la connexion avec la base de données
        Dim MaConnexion As SqlConnection = New SqlConnection(LocalConnexionStr)
        Dim MaCommande As SqlCommand = MaConnexion.CreateCommand
 
        Try
            MaConnexion.Open()
 
            MaCommande.CommandText = "SELECT Directory_PAth FROM T_Directories"
            Dim Monreader As SqlDataReader = MaCommande.ExecuteReader
 
            Do While Monreader.Read
                initFsWatcher_PNG(Monreader.GetValue(0).ToString)
            Loop
 
            MaConnexion.Close()
        Catch ex As Exception
            Msgbox(ex.message)
        End Try
 
 
    End Sub