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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
Public Class cls_Surveillance_Dossier
Private Surveillance As System.IO.FileSystemWatcher = Nothing
Private MyDossierSurveillé As String = ""
Private MyDossierDesLogs As String = ""
Private Now_DernierMessage As String = ""
Private Date_Maintenant As String = ""
Sub New()
End Sub
Sub New(ByVal UnDossierSurveillé As String, ByVal UnDossierLog As String)
ActiveConfiguration(UnDossierSurveillé, UnDossierLog)
End Sub
Public Sub ActiveConfiguration(ByVal UnDossierSurveillé As String, ByVal UnDossierLog As String)
If DossierSurveillé = UnDossierLog Then
Err.Raise(1976, "Constructueur de la class cls_Surveille_Dossier", "Le dossier de surveillance ne peut pas être identique à celui du stockage du log.")
Else
If System.IO.Directory.Exists(UnDossierSurveillé) Then
MyDossierSurveillé = DossierSurveillé
If System.IO.Directory.Exists(UnDossierLog) Then
MyDossierDesLogs = UnDossierLog
Surveillance = New System.IO.FileSystemWatcher()
'Dossier Surveillé
Surveillance.Path = DossierSurveillé
'Propriétés Surveillées
Surveillance.NotifyFilter = System.IO.NotifyFilters.Attributes _
Or System.IO.NotifyFilters.CreationTime _
Or System.IO.NotifyFilters.DirectoryName _
Or System.IO.NotifyFilters.FileName _
Or System.IO.NotifyFilters.LastAccess _
Or System.IO.NotifyFilters.LastWrite _
Or System.IO.NotifyFilters.Security
'Evenements qui seront déclenchés
AddHandler Surveillance.Changed, AddressOf OnChanged
AddHandler Surveillance.Created, AddressOf OnCreated
AddHandler Surveillance.Deleted, AddressOf OnDeleted
AddHandler Surveillance.Renamed, AddressOf OnRenamed
Else
Err.Raise(1977, "Constructueur de la class cls_Surveille_Dossier", "Le dossier spécifié pour le stocke du log n'existe pas")
End If
Else
Err.Raise(1978, "Constructueur de la class cls_Surveille_Dossier", "Le dossier qui doit être surveillé n'existe pas où ne se trouve pas à l'endroit spécifié")
End If
End If
End Sub
Public Sub ActiveConfiguration()
If MyDossierSurveillé = MyDossierDesLogs Then
Err.Raise(1976, "Constructueur de la class cls_Surveille_Dossier", "Le dossier de surveillance ne peut pas être identique à celui du stockage du log.")
Else
If System.IO.Directory.Exists(MyDossierSurveillé) Then
If System.IO.Directory.Exists(MyDossierDesLogs) Then
Surveillance = New System.IO.FileSystemWatcher()
'Dossier Surveillé
Surveillance.Path = MyDossierSurveillé
'Propriétés Surveillées
Surveillance.NotifyFilter = System.IO.NotifyFilters.Attributes _
Or System.IO.NotifyFilters.CreationTime _
Or System.IO.NotifyFilters.DirectoryName _
Or System.IO.NotifyFilters.FileName _
Or System.IO.NotifyFilters.LastAccess _
Or System.IO.NotifyFilters.LastWrite _
Or System.IO.NotifyFilters.Security
'Evenements qui seront déclenchés
AddHandler Surveillance.Changed, AddressOf OnChanged
AddHandler Surveillance.Created, AddressOf OnCreated
AddHandler Surveillance.Deleted, AddressOf OnDeleted
AddHandler Surveillance.Renamed, AddressOf OnRenamed
Else
Err.Raise(1977, "Constructueur de la class cls_Surveille_Dossier", "Le dossier spécifié pour le stocke du log n'existe pas")
End If
Else
Err.Raise(1978, "Constructueur de la class cls_Surveille_Dossier", "Le dossier qui doit être surveillé n'existe pas où ne se trouve pas à l'endroit spécifié")
End If
End If
End Sub
Public Property DossierSurveillé() As String
Get
Return MyDossierSurveillé
End Get
Set(ByVal value As String)
MyDossierSurveillé = value
End Set
End Property
Public Property DossierDesLogs() As String
Get
Return MyDossierDesLogs
End Get
Set(ByVal value As String)
MyDossierDesLogs = value
End Set
End Property
Public Function IsActiver() As Boolean
Return Surveillance.EnableRaisingEvents
End Function
Public Sub Activer()
Surveillance.EnableRaisingEvents = True
End Sub
Public Sub Stopper()
Surveillance.EnableRaisingEvents = False
End Sub
Private Sub OnChanged(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
Log("Modifié : """ & e.Name & "" & IIf(My.User.Name = "", "", " par " & My.User.Name))
End Sub
Private Sub OnCreated(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
Log("Créé : """ & e.Name & "" & IIf(My.User.Name = "", "", " par " & My.User.Name))
End Sub
Private Sub OnDeleted(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
Log("Supprimé : """ & e.Name & "" & IIf(My.User.Name = "", "", " par " & My.User.Name))
End Sub
Private Sub OnRenamed(ByVal source As Object, ByVal e As System.IO.RenamedEventArgs)
Log("Renommé : """ & e.Name & "" & IIf(My.User.Name = "", "", " par " & My.User.Name))
End Sub
Private Sub Log(ByVal Texte As String)
Date_Maintenant = Now.ToString
If Not Now_DernierMessage = Date_Maintenant Then
Now_DernierMessage = Date_Maintenant
Texte = vbCrLf & Date_Maintenant & " --> " & Texte
My.Computer.FileSystem.WriteAllText(MyDossierDesLogs & "\" & New System.IO.DirectoryInfo(MyDossierSurveillé).Name & ".Log", Texte, True)
End If
End Sub
End Class |
Partager