jj 31.05
This commit is contained in:
236
ToolCollection/ClassMoveRenameLogger.vb
Normal file
236
ToolCollection/ClassMoveRenameLogger.vb
Normal file
@@ -0,0 +1,236 @@
|
||||
Public Class ClassMoveRenameLogger
|
||||
Private Shared DateiSpeicherort As String = Nothing
|
||||
Private Shared DateiPrefix As String = ""
|
||||
Private Shared Datei As IO.File = Nothing
|
||||
Private Shared Dateiname As String = ""
|
||||
Private Shared StreamWriter As IO.StreamWriter = Nothing
|
||||
Private Shared HasInformedAboutError As Boolean = False
|
||||
|
||||
' eine Art Konstruktor
|
||||
Public Shared Sub Init(ByVal speicherort As String, Optional ByVal prefix As String = "", Optional ByVal appendFile As Boolean = True)
|
||||
' initialisiert den Speicherort
|
||||
ClassMoveRenameLogger.SetSpeicherort(speicherort)
|
||||
|
||||
' wenn ein Prfix gesetzt wurde
|
||||
If Not prefix = "" Then
|
||||
|
||||
' initialisiert das Prefix
|
||||
ClassMoveRenameLogger.SetPrefix(prefix)
|
||||
End If
|
||||
|
||||
ClassMoveRenameLogger.Dateiname = ClassMoveRenameLogger.DateiSpeicherort & "\" & ClassMoveRenameLogger.DateiPrefix & System.DateTime.Now.ToString("yyyy_MM_dd") & ".txt"
|
||||
If Not appendFile Then
|
||||
' der Versuch die Datei zu löschen
|
||||
'Try
|
||||
' My.Computer.FileSystem.DeleteFile(ClassNILogger.Dateiname, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently)
|
||||
'Catch ex As Exception
|
||||
' ' bei Fehler besteht kein Schreibrecht auf die Datei oder Datei existiert nicht
|
||||
' ' ALSO: alles Okay soweit
|
||||
'End Try
|
||||
My.Computer.FileSystem.WriteAllText(ClassMoveRenameLogger.Dateiname, String.Empty, False)
|
||||
End If
|
||||
|
||||
' testen ob sich die Datei öffnen und beschreiben lässt
|
||||
'ClassNILogger.CheckIsLogWritable()
|
||||
|
||||
End Sub
|
||||
|
||||
' legt den Speicherort fest
|
||||
Public Shared Sub SetSpeicherort(ByVal speicherort As String)
|
||||
Dim f As New IO.DirectoryInfo(My.Application.Info.DirectoryPath & "\Log")
|
||||
If speicherort = "" Then
|
||||
If f.Exists = False Then
|
||||
IO.Directory.CreateDirectory(My.Application.Info.DirectoryPath & "\Log")
|
||||
End If
|
||||
ClassMoveRenameLogger.DateiSpeicherort = My.Application.Info.DirectoryPath & "\Log\"
|
||||
Else
|
||||
ClassMoveRenameLogger.DateiSpeicherort = speicherort
|
||||
End If
|
||||
End Sub
|
||||
|
||||
' legt das Prefix für den Dateinamen fest
|
||||
Public Shared Sub SetPrefix(ByVal prefix As String)
|
||||
ClassMoveRenameLogger.DateiPrefix = prefix
|
||||
End Sub
|
||||
|
||||
Public Shared Sub Add(ByVal information As String, Optional ByVal mit_prefix As Boolean = True)
|
||||
If ClassMoveRenameLogger.OpenFile Then
|
||||
Try
|
||||
If mit_prefix Then
|
||||
ClassMoveRenameLogger.StreamWriter.WriteLine("Nachricht (" & System.DateTime.Now & "): " & information)
|
||||
Else
|
||||
ClassMoveRenameLogger.StreamWriter.WriteLine(information)
|
||||
End If
|
||||
ClassMoveRenameLogger.CloseFile()
|
||||
Catch e As Exception
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
End Try
|
||||
Else
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub Add(ByVal ClassFunction As String, ByVal information As String)
|
||||
If ClassMoveRenameLogger.OpenFile Then
|
||||
Try
|
||||
ClassMoveRenameLogger.StreamWriter.WriteLine("Exception (" & System.DateTime.Now & "): " & ClassFunction & " => " & information)
|
||||
ClassMoveRenameLogger.CloseFile()
|
||||
Catch e As Exception
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
End Try
|
||||
Else
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub Add(ByVal ex As Exception)
|
||||
If ClassMoveRenameLogger.OpenFile Then
|
||||
Try
|
||||
ClassMoveRenameLogger.StreamWriter.WriteLine("Exception (" & System.DateTime.Now & "): " & ex.Message & " [" & ex.Source & "]")
|
||||
ClassMoveRenameLogger.CloseFile()
|
||||
Catch e As Exception
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
End Try
|
||||
Else
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub Add(ByVal ClassFunction As String, ByVal ex As Exception)
|
||||
If ClassMoveRenameLogger.OpenFile Then
|
||||
Try
|
||||
ClassMoveRenameLogger.StreamWriter.WriteLine("Exception (" & System.DateTime.Now & "): " & ex.Message & " [" & ex.Source & "] => " & ClassFunction)
|
||||
ClassMoveRenameLogger.CloseFile()
|
||||
Catch e As Exception
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
End Try
|
||||
Else
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub Add(ByVal ClassFunction As String, ByVal information As String, ByVal ex As Exception)
|
||||
|
||||
If ClassMoveRenameLogger.OpenFile Then
|
||||
Try
|
||||
ClassMoveRenameLogger.StreamWriter.WriteLine("Exception (" & System.DateTime.Now & "): " & ex.Message & " [" & ex.Source & "] => " & ClassFunction & " => " & information)
|
||||
ClassMoveRenameLogger.CloseFile()
|
||||
Catch e As Exception
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
End Try
|
||||
Else
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
' öffnet eine Datei zum Schreiben
|
||||
Private Shared Function OpenFile()
|
||||
Try
|
||||
' wenn ein Speicherort festgelegt wurde
|
||||
If Not ClassMoveRenameLogger.DateiSpeicherort = Nothing Then
|
||||
' den Dateienamen definieren
|
||||
Dim dateiname As String = ClassMoveRenameLogger.Dateiname
|
||||
' Datei anlegen wenn noch nicht vorhanden
|
||||
My.Computer.FileSystem.WriteAllText(dateiname, String.Empty, True)
|
||||
' die Datei zum Schreiben öffnen
|
||||
ClassMoveRenameLogger.StreamWriter = New IO.StreamWriter(dateiname, True, System.Text.Encoding.UTF8)
|
||||
End If
|
||||
' wenn die Datei erfolgreich geöffnet wurde
|
||||
If ClassMoveRenameLogger.StreamWriter IsNot Nothing Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
' öffnet eine Datei zum Schreiben
|
||||
Private Shared Function OpenFile(ByVal DateiSpeicherort As String, ByVal DateiPrefix As String)
|
||||
|
||||
Try
|
||||
|
||||
' wenn ein Speicherort festgelegt wurde
|
||||
If Not DateiSpeicherort = Nothing And ClassMoveRenameLogger.CheckIsLogWritable() Then
|
||||
|
||||
' den Dateienamen definieren
|
||||
Dim dateiname As String = ClassMoveRenameLogger.Dateiname
|
||||
' Datei anlegen wenn noch nicht vorhanden
|
||||
My.Computer.FileSystem.WriteAllText(dateiname, String.Empty, True)
|
||||
|
||||
' die Datei zum Schreiben öffnen
|
||||
ClassMoveRenameLogger.StreamWriter = New IO.StreamWriter(dateiname, True, System.Text.Encoding.UTF8)
|
||||
End If
|
||||
|
||||
' wenn die Datei erfolgreich geöffnet wurde
|
||||
If ClassMoveRenameLogger.StreamWriter IsNot Nothing Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
' schliesst die geöffnete Datei
|
||||
Private Shared Sub CloseFile()
|
||||
|
||||
' wenn eine Datei geöffnet ist
|
||||
If ClassMoveRenameLogger.StreamWriter IsNot Nothing Then
|
||||
' die Datei schliessen
|
||||
ClassMoveRenameLogger.StreamWriter.Close()
|
||||
ClassMoveRenameLogger.StreamWriter = Nothing
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Public Shared Function CheckIsLogWritable()
|
||||
|
||||
If ClassMoveRenameLogger.OpenFile Then
|
||||
Try
|
||||
ClassMoveRenameLogger.CloseFile()
|
||||
Catch e As Exception
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
Return False
|
||||
End Try
|
||||
Else
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function CheckIsLogWritable(ByVal vDateiSpeicherort As String, ByVal vDateiPrefix As String)
|
||||
|
||||
If ClassMoveRenameLogger.OpenFile(vDateiSpeicherort, vDateiPrefix) Then
|
||||
Try
|
||||
ClassMoveRenameLogger.CloseFile()
|
||||
Catch e As Exception
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
Return False
|
||||
End Try
|
||||
Else
|
||||
ClassMoveRenameLogger.ShowErrorMessage()
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
Private Shared Sub ShowErrorMessage()
|
||||
If Not ClassMoveRenameLogger.HasInformedAboutError Then
|
||||
MsgBox("Beim Öffnen der Logdatei ist ein Fehler aufgetreten. Bitte stellen Sie sicher das Sie sowohl über entsprechende Schreibrechte im Verzeichnis, als auch über ausreichend Speicherplatz zum Speichern der Logdatei verfügen." & vbNewLine & vbNewLine & "Es wird keine Logdatei angelegt oder beschrieben." & vbNewLine & vbNewLine & "Im folgenden werden Sie über Fehler, den Log betreffend nicht weiter informiert, um den Ablauf der Nachindexierung nicht zu stören.", MsgBoxStyle.Information, "Fehler beim Öffnen der Logdatei")
|
||||
ClassMoveRenameLogger.HasInformedAboutError = True
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user