199 lines
8.1 KiB
VB.net
199 lines
8.1 KiB
VB.net
Imports System.IO
|
|
Imports System.Threading
|
|
Imports DigitalData.Modules.Base
|
|
Imports DigitalData.Modules.Logging
|
|
|
|
Public Class ClassFolderWatcher
|
|
Inherits BaseClass
|
|
|
|
Public FolderWatcher As FileSystemWatcher
|
|
Public FolderWatcher_SCAN As FileSystemWatcher
|
|
|
|
Public Event FileCreated As EventHandler(Of FileSystemEventArgs)
|
|
|
|
Public Sub New(pLogConfig As LogConfig)
|
|
MyBase.New(pLogConfig)
|
|
End Sub
|
|
|
|
Private Sub OnCreated(source As Object, e As IO.FileSystemEventArgs)
|
|
RaiseEvent FileCreated(source, e)
|
|
End Sub
|
|
|
|
Public Sub Restart_FolderWatch()
|
|
Try
|
|
If FolderWatcher.EnableRaisingEvents = True Then
|
|
'Gestartet also Stoppen
|
|
FolderWatcher.EnableRaisingEvents = False
|
|
FW_started = False
|
|
'FolderWatch neu instanzieren
|
|
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
|
|
|
|
Logger.Info(" >> FolderWatch neu instanziert")
|
|
FolderWatcher.IncludeSubdirectories = False
|
|
FolderWatcher.EnableRaisingEvents = True
|
|
AddHandler FolderWatcher.Created, AddressOf OnCreated
|
|
FW_started = True
|
|
CONFIG.Config.FolderWatchStarted = True
|
|
CONFIG.Save()
|
|
End If
|
|
Catch ex As Exception
|
|
Logger.Info($"Error in Restart_FolderWatch: {ex.Message}")
|
|
Logger.Error(ex)
|
|
End Try
|
|
End Sub
|
|
Public Sub Restart_FolderWatchSCAN()
|
|
Try
|
|
If FolderWatcher_SCAN.EnableRaisingEvents = True Then
|
|
'Gestartet also Stoppen
|
|
FolderWatcher_SCAN.EnableRaisingEvents = False
|
|
'FolderWatch neu instanzieren
|
|
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
|
|
Logger.Info(" >> FolderWatchScan neu instanziert")
|
|
FolderWatcher_SCAN.IncludeSubdirectories = False
|
|
FolderWatcher_SCAN.EnableRaisingEvents = True
|
|
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
|
|
CONFIG.Config.FolderWatchScanStarted = True
|
|
CONFIG.Save()
|
|
End If
|
|
Catch ex As Exception
|
|
Logger.Info($"Error in Restart_FolderWatchSCAN: {ex.Message}")
|
|
Logger.Error(ex)
|
|
End Try
|
|
End Sub
|
|
Public Function StartStop_FolderWatch() As Integer
|
|
Try
|
|
If CURRENT_FOLDERWATCH = "" Then
|
|
'MsgBox("Bitte definieren Sie einen Überwachungsordner:", MsgBoxStyle.Exclamation)
|
|
Return False
|
|
End If
|
|
If FolderWatcher Is Nothing Then
|
|
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
|
|
Logger.Info(" >> FolderWatch Gestartet")
|
|
FolderWatcher.IncludeSubdirectories = False
|
|
FolderWatcher.EnableRaisingEvents = True
|
|
AddHandler FolderWatcher.Created, AddressOf OnCreated
|
|
FW_started = True
|
|
CONFIG.Config.FolderWatchStarted = True
|
|
CONFIG.Save()
|
|
Return 1
|
|
End If
|
|
If FolderWatcher.EnableRaisingEvents = False Then
|
|
' Dim watcher As New FileSystemWatcher()
|
|
' watcher.Path = CURRENT_FOLDERWATCH
|
|
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
|
|
Logger.Info(" >> FolderWatch Gestartet")
|
|
FolderWatcher.IncludeSubdirectories = False
|
|
FolderWatcher.EnableRaisingEvents = True
|
|
AddHandler FolderWatcher.Created, AddressOf OnCreated
|
|
FW_started = True
|
|
CONFIG.Config.FolderWatchStarted = True
|
|
CONFIG.Save()
|
|
Return 1
|
|
Else
|
|
'Gestartet also Stoppen
|
|
FolderWatcher.EnableRaisingEvents = False
|
|
FW_started = False
|
|
Logger.Info(" >> FolderWatch gestoppt")
|
|
CONFIG.Config.FolderWatchStarted = False
|
|
CONFIG.Save()
|
|
Return 0
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Error in StartStop_FolderWatch:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return 99
|
|
End Try
|
|
End Function
|
|
Public Function StartStop_FolderWatchSCAN() As Integer
|
|
Try
|
|
If CURRENT_SCAN_FOLDERWATCH = "" Then
|
|
If FolderWatcher.EnableRaisingEvents = True Then
|
|
Stop_FWSCAN()
|
|
Return 0
|
|
Else
|
|
If USER_LANGUAGE = "de-DE" Then
|
|
MsgBox("Bitte definieren Sie einen Überwachungsordner für Scan-Eingänge:", MsgBoxStyle.Exclamation)
|
|
Else
|
|
MsgBox("Please define a watchfolder for Scanning:", MsgBoxStyle.Exclamation)
|
|
End If
|
|
|
|
Return False
|
|
End If
|
|
End If
|
|
If FolderWatcher_SCAN Is Nothing Then
|
|
FolderWatcher_SCAN = New FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
|
|
Logger.Info(" >> FolderWatch Scan Gestartet")
|
|
FolderWatcher_SCAN.IncludeSubdirectories = False
|
|
FolderWatcher_SCAN.EnableRaisingEvents = True
|
|
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
|
|
CONFIG.Config.FolderWatchScanStarted = True
|
|
CONFIG.Save()
|
|
Return 1
|
|
End If
|
|
If FolderWatcher_SCAN.EnableRaisingEvents = False Then
|
|
' Dim watcher As New FileSystemWatcher()
|
|
' watcher.Path = CURRENT_FOLDERWATCH
|
|
FolderWatcher_SCAN = New FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
|
|
Logger.Info(" >> FolderWatch Scan Gestartet")
|
|
FolderWatcher_SCAN.IncludeSubdirectories = False
|
|
FolderWatcher_SCAN.EnableRaisingEvents = True
|
|
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
|
|
CONFIG.Config.FolderWatchScanStarted = True
|
|
CONFIG.Save()
|
|
Return 1
|
|
Else
|
|
'Gestartet also Stoppen
|
|
FolderWatcher_SCAN.EnableRaisingEvents = False
|
|
Logger.Info(" >> FolderWatch Scan gestoppt")
|
|
CONFIG.Config.FolderWatchScanStarted = False
|
|
CONFIG.Save()
|
|
Return 0
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
MsgBox("Error in StartStop_FolderWatchSCAN:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return 99
|
|
End Try
|
|
End Function
|
|
Public Function Stop_FWSCAN() As Boolean
|
|
If FolderWatcher.EnableRaisingEvents = True Then
|
|
'Gestartet also Stoppen
|
|
FolderWatcher.EnableRaisingEvents = False
|
|
FW_started = False
|
|
Logger.Info(" >> FolderWatch gestoppt")
|
|
'SaveConfigValue("FW_started", "False")
|
|
CONFIG.Config.FolderWatchStarted = True
|
|
CONFIG.Save()
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
'Private Sub OnCreated(source As Object, e As FileSystemEventArgs)
|
|
' Try
|
|
' For Each row As DataRow In DTEXCLUDE_FILES.Rows
|
|
' Dim content As String = row.Item(0).ToString.ToLower
|
|
' If e.FullPath.ToLower.Contains(content) Then
|
|
' Exit Sub
|
|
' End If
|
|
' Next
|
|
|
|
' Dim oHandleType As String
|
|
' If e.FullPath.ToLower.EndsWith(".msg") Then
|
|
' oHandleType = "|FW_OUTLOOK_MESSAGE|"
|
|
' Else
|
|
' oHandleType = "|FW_SIMPLEINDEXER|"
|
|
' End If
|
|
' 'Die Datei übergeben
|
|
' Logger.Info(">> OnCreated-File:" & e.FullPath)
|
|
|
|
' If ClassIndexFunctions.CheckDuplicateFiles(e.FullPath, "FolderWatch/Scan") Then
|
|
' FileHandler.Decide_FileHandle(e.FullPath, oHandleType)
|
|
' End If
|
|
' Catch ex As Exception
|
|
' MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in folder_watch_Created")
|
|
' End Try
|
|
|
|
'End Sub
|
|
|
|
End Class
|