Imports System.IO Imports Independentsoft Imports System.Threading Public Class ClassFolderWatcher Public Shared FolderWatcher As FileSystemWatcher Public Shared Function Restart_FolderWatch() If FolderWatcher.EnableRaisingEvents = True Then 'Gestartet also Stoppen FolderWatcher.EnableRaisingEvents = False FW_started = False 'FolderWatch neu instanzieren FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*") ClassLogger.Add(" >> FolderWatch neu instanziert", False) FolderWatcher.IncludeSubdirectories = False FolderWatcher.EnableRaisingEvents = True AddHandler FolderWatcher.Created, AddressOf OnCreated FW_started = True SaveConfigValue("FW_started", "True") End If End Function Public Shared Function StartStop_FolderWatch() 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, "*.*") ClassLogger.Add(" >> FolderWatch Gestartet", False) FolderWatcher.IncludeSubdirectories = False FolderWatcher.EnableRaisingEvents = True AddHandler FolderWatcher.Created, AddressOf OnCreated FW_started = True SaveConfigValue("FW_started", "True") 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, "*.*") ClassLogger.Add(" >> FolderWatch Gestartet", False) FolderWatcher.IncludeSubdirectories = False FolderWatcher.EnableRaisingEvents = True AddHandler FolderWatcher.Created, AddressOf OnCreated FW_started = True SaveConfigValue("FW_started", "True") Return 1 Else 'Gestartet also Stoppen FolderWatcher.EnableRaisingEvents = False FW_started = False ClassLogger.Add(" >> FolderWatch gestoppt", False) SaveConfigValue("FW_started", "False") Return 0 End If 'If watcher.EnableRaisingEvents = False Then ' watcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*") ' ClassLogger.Add(" - vFolderWatch.Gestartet", False) ' watcher.IncludeSubdirectories = False ' watcher.EnableRaisingEvents = True ' AddHandler watcher.Created, AddressOf OnCreated ' Return 1 'Else ' 'Gestartet also Stoppen ' watcher.EnableRaisingEvents = False ' Return 0 'End If Catch ex As Exception MsgBox("Error in StartStop_FolderWatch:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return 99 End Try End Function 'Private Sub folder_watch_Created(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles vFolderWatch.Created ' Try ' 'ersten Dateinamen übergeben ' If LogErrorsOnly = False Then ' ClassLogger.Add(" >> vFolderWatch1.Created " & e.Name, False) ' End If ' CURRENT_FILENAME = e.Name ' Catch ex As Exception ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei folder_watch_Created") ' End Try 'End Sub Private Shared Sub OnCreated(source As Object, e As FileSystemEventArgs) Try If e.FullPath.Contains("Thumbs.") Or e.FullPath.EndsWith(".tmp") Or e.FullPath.Contains("\~$") Then Exit Sub End If Dim praefix As String If e.FullPath.EndsWith(".msg") Then praefix = "@FW_OUTLOOK_MESSAGE@" Else praefix = "@FW_SIMPLEINDEXER@" End If 'ersten Dateinamen übergeben CURRENT_FILENAME = e.FullPath ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE WORKED = 1 AND USER@WORK = '" & Environment.UserName & "'", True) If LogErrorsOnly = False Then ClassLogger.Add(">> OnCreated-File:" & CURRENT_FILENAME, False) If ClassIndexFunctions.FileExistsinDropTable(CURRENT_FILENAME) = False Then Dim ins As String = "INSERT INTO TBGI_FILES_USER (FILENAME2WORK, USER@WORK,HANDLE_TYPE) VALUES ('" & CURRENT_FILENAME & "','" & Environment.UserName & "','" & praefix & "')" ClassDatabase.Execute_non_Query(ins, True) Else Console.WriteLine("File existiert bereeits") End If 'frmMain.MyNewTimer() 'ShowIndexForm() 'Dim file = CURRENT_FILENAME 'Dim frm As New frmIndex 'frm.ShowDialog() ''Jetzt die Anhänge auslesen 'If file.EndsWith(".msg") Then ' Dim _msg As New Msg.Message(CURRENT_FILENAME) ' Dim i1 As Integer = 1 ' For Each attachment As Independentsoft.Msg.Attachment In _msg.Attachments ' If attachment.DisplayName Is Nothing Then ' If Not attachment.LongFileName Is Nothing And Not attachment.LongFileName.Contains("inline") Then ' Dim tempfile As String = Path.Combine(Path.GetTempPath, attachment.LongFileName) ' If LogErrorsOnly = False Then ClassLogger.Add(">> Attachment (" & i1 & "):" & tempfile, False) ' attachment.Save(tempfile) ' CURRENT_FILENAME = "@ATTMNTEXTRACTED@" & tempfile ' frmIndex.ShowDialog() ' i1 += 1 ' End If ' End If ' Next 'End If ''Prüfen ob alle Files abgearbeitet wurden 'Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND USER@WORK = '" & Environment.UserName & "'") 'If DT.Rows.Count > 0 Then ' For Each row As DataRow In DT.Rows ' MsgBox("Abbrechen nicht möglich:" & vbNewLine & "Bitte indexieren Sie die folgende Datei vollständig:", MsgBoxStyle.Exclamation) ' CURRENT_FILENAME = row.Item(1) ' frmIndex.ShowDialog() ' Next 'End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei folder_watch_Created") End Try End Sub Sub Check_Dropped_Files() Try Catch ex As Exception MsgBox("Check_Dropped_Files: " & ex.Message, MsgBoxStyle.Critical) End Try End Sub _ Public Shared Sub ShowIndexForm() Dim frm As New frmIndex frm.ShowDialog() End Sub End Class