This commit is contained in:
SchreiberM
2017-01-25 10:16:40 +01:00
parent 042f24e231
commit 64c99f80b9
43 changed files with 5067 additions and 2448 deletions

View File

@@ -7,6 +7,7 @@ Imports Oracle.ManagedDataAccess.Client
Imports System.Text
Imports System.Security.AccessControl
Imports System.Security.Principal
Imports System.DirectoryServices
Public Class frmIndex
#Region "+++++ Variablen ++++++"
@@ -337,7 +338,7 @@ Public Class frmIndex
' Return 99
' End Try
' End Function
Function GetManIndex_Value(indexname As String, RequestFor As String)
Function GetManIndex_Value(indexname As String, RequestFor As String, opt As Boolean)
Try
Dim DT As DataTable
Dim DR As DataRow
@@ -355,15 +356,16 @@ Public Class frmIndex
Else
If DR.Item("Indexwert").ToString <> String.Empty Then
If LogErrorsOnly = False Then ClassLogger.Add(" >>Zurückgegebener manueller Indexwert: " & DR.Item("Indexwert"), False)
Console.WriteLine("Rückgabe manueller wert: " & DR.Item("Indexwert"))
Return DR.Item("Indexwert")
Else
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & indexname & "')", MyConnectionString, True)
If optional_index = False Then
If opt = False Then
ClassLogger.Add(" >> Achtung, der Indexwert des manuellen Indexes '" & indexname & "' ist String.empty!", False)
showlblhinweis("Indexiert = True - Der Index: " & DR.Item("INDEXNAME") & " wurde nicht ordnungsgemäss indexiert! - Automatischer Index konnte nicht gesetzt werden!")
Return Nothing
Else
Return ""
End If
Return Nothing
End If
End If
Case Else
@@ -371,12 +373,14 @@ Public Class frmIndex
If LogErrorsOnly = False Then ClassLogger.Add(" >>Zurückgegebener manueller Indexwert: " & DR.Item("Indexwert"), False)
Return DR.Item("Indexwert")
Else
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & indexname & "')", MyConnectionString, True)
If optional_index = False Then
'Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & indexname & "')", MyConnectionString, True)
If opt = False Then
ClassLogger.Add(" >> Achtung, der Indexwert des manuellen Indexes '" & indexname & "' ist String.empty!", False)
showlblhinweis("Indexiert = True - Der Index: " & DR.Item("INDEXNAME") & " wurde nicht ordnungsgemäss indexiert! - Automatischer Index konnte nicht gesetzt werden!")
Return Nothing
Else
Return ""
End If
Return Nothing
End If
End Select
Else
@@ -438,7 +442,7 @@ Public Class frmIndex
End If
If ergebnis Is Nothing Then
showlblhinweis("Kein Ergebnis für automatisches SQL: " & vsqlstatement)
'showlblhinweis("Kein Ergebnis für automatisches SQL: " & vsqlstatement)
Return ""
Else
Return ergebnis
@@ -952,13 +956,13 @@ Public Class frmIndex
End If
' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
For Each element As System.Text.RegularExpressions.Match In elemente
Console.WriteLine(element.ToString)
Select Case element.Value.Substring(2, 1).ToUpper
'Manueller Indexwert
Case "M"
If LogErrorsOnly = False Then ClassLogger.Add(" >>Manueller Index wird geprüft...", False)
Dim Indexname = element.Value.Substring(3, element.Value.Length - 4)
Dim value As String = GetManIndex_Value(element.Value.Substring(3, element.Value.Length - 4), "FILE")
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & Indexname & "')", MyConnectionString, True)
Dim value As String = GetManIndex_Value(Indexname, "FILE", optional_index)
If value <> String.Empty Then
DATEINAME = DATEINAME.Replace(element.Value, value)
NewFileString = DATEINAME
@@ -966,7 +970,7 @@ Public Class frmIndex
AnzahlIndexe += 1
sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
Else
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & Indexname & "')", MyConnectionString, True)
If optional_index = True Then
Dim result As MsgBoxResult
result = MessageBox.Show("Achtung der optionale Index ist leer, wird aber für die Benennung der Datei benutzt." & vbNewLine & "Wollen Sie stattdessen den Originaldateinamen verwenden?", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
@@ -993,11 +997,16 @@ Public Class frmIndex
Case "A"
Dim value As String = GetAutoIndex_Value(element.Value.Substring(3, element.Value.Length - 4))
If value <> String.Empty Then
DATEINAME = DATEINAME.Replace(element.Value, value)
NewFileString = DATEINAME
sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
AnzahlIndexe += 1
sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
If value = "EMPTY_OI" Then
DATEINAME = DATEINAME.Replace(element.Value, "")
NewFileString = DATEINAME
Else
DATEINAME = DATEINAME.Replace(element.Value, value)
NewFileString = DATEINAME
sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
AnzahlIndexe += 1
sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
End If
Else
err = True
End If
@@ -1024,12 +1033,21 @@ Public Class frmIndex
datetemp = _day & "_" & _Month & "_" & My.Computer.Clock.LocalTime.Year.ToString.Substring(2)
Case "DD_MM_YYYY"
datetemp = _day & "_" & _Month & "_" & My.Computer.Clock.LocalTime.Year
Case "YYMMDD"
datetemp = My.Computer.Clock.LocalTime.Year.ToString.Substring(2) & _Month & _day
Case "YYYYMMDD"
datetemp = My.Computer.Clock.LocalTime.Year & _Month & _day
Case "DDMMYY"
datetemp = _day & _Month & My.Computer.Clock.LocalTime.Year.ToString.Substring(2)
Case "DDMMYYYY"
datetemp = _day & _Month & My.Computer.Clock.LocalTime.Year
Case "OFilename"
DATEINAME = DATEINAME.Replace(element.Value, System.IO.Path.GetFileNameWithoutExtension(CURRENT_WORKFILE))
Case "Username"
Case "Username".ToUpper
DATEINAME = DATEINAME.Replace(element.Value, Environment.UserName)
Case "Usercode"
Case "Usercode".ToUpper
DATEINAME = DATEINAME.Replace(element.Value, CURRENT_USER_SHORT)
Case ""
End Select
If datetemp <> "" Then
DATEINAME = DATEINAME.Replace(element.Value, datetemp)
@@ -1063,9 +1081,24 @@ Public Class frmIndex
MsgBox("Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper, MsgBoxStyle.Exclamation, "Unexpected error in Name generieren:")
End Select
Next
CURRENT_NEWFILENAME = ClassFilehandle.CleanFilename(CURRENT_NEWFILENAME, "")
CURRENT_NEWFILENAME = NewFileString & extension
CURRENT_NEWFILENAME = ClassFilehandle.CleanFilename(NewFileString, "")
If CURRENT_NEWFILENAME.EndsWith("_") Then
CURRENT_NEWFILENAME = CURRENT_NEWFILENAME.Substring(0, CURRENT_NEWFILENAME.Length - 1)
End If
If CURRENT_NEWFILENAME.StartsWith("_") Then
CURRENT_NEWFILENAME = CURRENT_NEWFILENAME.Substring(1)
End If
If CURRENT_NEWFILENAME.Contains("__") Then
CURRENT_NEWFILENAME = CURRENT_NEWFILENAME.Replace("__", "_")
End If
CURRENT_NEWFILENAME &= extension
Dim sollfilename = System.IO.Path.GetFileName(CURRENT_NEWFILENAME)
If sollfilename.StartsWith("_") Then
sollfilename = sollfilename.Substring(1)
Dim _path = System.IO.Path.GetDirectoryName(CURRENT_NEWFILENAME)
CURRENT_NEWFILENAME = _path & "\" & sollfilename
End If
Dim path = System.IO.Path.GetDirectoryName(CURRENT_NEWFILENAME)
If folder_Created = False Then
' Den Zielordner erstellen
@@ -1108,26 +1141,29 @@ Public Class frmIndex
Dim idxvalue = row.Item("Indexwert")
Dim indexname = row.Item("WD_INDEX").ToString
Dim optional_Index = CBool(row.Item("OPTIONAL"))
If CBool(row.Item("Indexiert")) = True And idxvalue.ToString <> "" Then
Dim indexiert = CBool(row.Item("Indexiert"))
If indexiert And idxvalue.ToString <> "" And idxvalue <> "EMPTY_OI" Then
If indexname <> String.Empty Then
'Den Indexwert zwischenspeichern
Dim DTTemp As DataTable = MyDataset.TBTEMP_INDEXRESULTS
Dim rowexists As Boolean = False
For Each rowTemp As DataRow In DTTemp.Rows
'Wenn bereits ein Eintrag existiert.....
If rowTemp.Item("Dokumentart") = row.Item("DOKUMENTART") And rowTemp.Item("Indexname") = row.Item("INDEXNAME") Then
rowexists = True
'......überschreiben
rowTemp.Item("Value") = row.Item("Indexwert")
If row.Item("SAVE_VALUE") = True Then
'Den Indexwert zwischenspeichern
Dim DTTemp As DataTable = MyDataset.TBTEMP_INDEXRESULTS
Dim rowexists As Boolean = False
For Each rowTemp As DataRow In DTTemp.Rows
'Wenn bereits ein Eintrag existiert.....
If rowTemp.Item("Dokumentart") = row.Item("DOKUMENTART") And rowTemp.Item("Indexname") = row.Item("INDEXNAME") Then
rowexists = True
'......überschreiben
rowTemp.Item("Value") = row.Item("Indexwert")
End If
Next
'.....ansonsten neu anlegen
If rowexists = False Then
Dim newRow As DataRow = DTTemp.NewRow()
newRow("Dokumentart") = row.Item("DOKUMENTART").ToString
newRow("Indexname") = row.Item("INDEXNAME").ToString
newRow("Value") = row.Item("Indexwert")
DTTemp.Rows.Add(newRow)
End If
Next
'.....ansonsten neu anlegen
If rowexists = False Then
Dim newRow As DataRow = DTTemp.NewRow()
newRow("Dokumentart") = row.Item("DOKUMENTART").ToString
newRow("Indexname") = row.Item("INDEXNAME").ToString
newRow("Value") = row.Item("Indexwert")
DTTemp.Rows.Add(newRow)
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> Manueller Indexvalue: " & idxvalue.ToString, False)
@@ -1155,28 +1191,31 @@ Public Class frmIndex
If DTAut.Rows.Count > 0 Then
Dim Count As Integer = 0
For Each row As DataRow In DTAut.Rows
If CBool(row.Item("Indexiert")) = True And row.Item("Indexwert").ToString <> "" Then
Dim indexname = row.Item("INDEXNAME").ToString
Dim idxvalue = row.Item("Indexwert")
If LogErrorsOnly = False Then ClassLogger.Add(" >> Auto Indexvalue: " & idxvalue.ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexvalue: " & idxvalue.ToString, False)
Count += 1
indexierung_erfolgreich = ClassWindream.DateiIndexieren(CURRENT_NEWFILENAME, indexname, idxvalue)
If indexierung_erfolgreich = False Then
MsgBox("Error in indexing file - See log", MsgBoxStyle.Critical)
Return False
Exit For
Dim indexiert = CBool(row.Item("Indexiert"))
Dim Indexvalue = row.Item("Indexwert").ToString
Dim indexname = row.Item("INDEXNAME").ToString
If indexiert = True And Indexvalue <> "" Then
If Indexvalue <> "EMPTY_OI" Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Auto Indexname: " & indexname.ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexvalue: " & Indexvalue.ToString, False)
Count += 1
indexierung_erfolgreich = ClassWindream.DateiIndexieren(CURRENT_NEWFILENAME, indexname, Indexvalue)
If indexierung_erfolgreich = False Then
MsgBox("Error in indexing file - See log", MsgBoxStyle.Critical)
Return False
Exit For
End If
End If
End If
Next
End If
If DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Or DropType = "@MSGONLY@" Or CURRENT_NEWFILENAME.EndsWith(".msg") Then
If DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Or DropType = "|MSGONLY|" Or CURRENT_NEWFILENAME.EndsWith(".msg") Then
indexierung_erfolgreich = SetEmailIndices()
If indexierung_erfolgreich = False Then
MsgBox("Error in SetEmailIndices - See log", MsgBoxStyle.Critical)
Return False
End If
ElseIf DropType = "@ATTMNTEXTRACTED@" Or DropType = "@OUTLOOK_ATTACHMENT@" Then
ElseIf DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then
indexierung_erfolgreich = SetAttachmentIndices()
If indexierung_erfolgreich = False Then
MsgBox("Error in SetEmailIndices - See log", MsgBoxStyle.Critical)
@@ -1206,7 +1245,20 @@ Public Class frmIndex
Private Function SetEmailIndices()
Dim indexierung_erfolgreich As Boolean = False
Try
Dim msg As New Msg.Message(CURRENT_NEWFILENAME)
Dim msg As Msg.Message = New Msg.Message(CURRENT_NEWFILENAME)
Dim msgDisplayTo = msg.DisplayTo
Dim msgInternetAccountName = msg.InternetAccountName
If LogErrorsOnly = False Then
ClassLogger.Add("", False)
ClassLogger.Add(" >> msgInternetAccountName: " & msgInternetAccountName, False)
ClassLogger.Add(" >> SenderName: " & msg.SenderName, False)
ClassLogger.Add(" >> SenderEmailAddress: " & msg.SenderEmailAddress, False)
ClassLogger.Add(" >> ReceivedByName: " & msg.ReceivedByName, False)
ClassLogger.Add(" >> ReceivedByEmailAddress: " & msg.ReceivedByEmailAddress, False)
ClassLogger.Add("", False)
End If
'Console.WriteLine("Subject: " + msg.Subject)
'Console.WriteLine("MessageDeliveryTime:" & msg.MessageDeliveryTime)
'Console.WriteLine("SenderName: " + msg.SenderName)
@@ -1247,7 +1299,7 @@ Public Class frmIndex
' Regular Expressions vorbereiten
Dim fromPattern As String = ClassDatabase.Execute_Scalar("SELECT REGEX FROM TBGI_FUNCTION_REGEX WHERE FUNCTION_NAME = 'FROM_EMAIL_HEADER'", MyConnectionString)
Dim toPattern As String = ClassDatabase.Execute_Scalar("SELECT REGEX FROM TBGI_FUNCTION_REGEX WHERE FUNCTION_NAME = 'TO_EMAIL_HEADER'", MyConnectionString)
Dim finalize_pattern As String = ClassDatabase.Execute_Scalar("SELECT REGEX FROM TBGI_FUNCTION_REGEX WHERE FUNCTION_NAME = 'FINALIZE'", MyConnectionString)
If fromPattern <> "" And toPattern <> "" Then
Dim FromRegexList As New List(Of Regex)
Dim ToRegexList As New List(Of Regex)
@@ -1259,30 +1311,86 @@ Public Class frmIndex
' Email Header auslesen
Dim headers As String = ClassEmailHeaderExtractor.getMessageHeaders(msg)
Dim emailFrom As String
Dim emailTo As String
Dim emailFrom
Dim emailTo
' Email Absender und Empfänger
If headers Is Nothing Then
If msg.DisplayTo Is Nothing Then
If IsNothing(msgDisplayTo) Then
ClassLogger.Add(" >> DisplayTo in email is nothing - default will be set", False)
emailTo = "NO RECIPIENT"
Else
emailTo = msg.DisplayTo.Replace("'", "")
emailTo = msgDisplayTo.ToString.Replace("'", "")
End If
If msg.InternetAccountName Is Nothing Then
If IsNothing(msgInternetAccountName) Then
ClassLogger.Add(" >> InternetAccountName in email is nothing - default will be set", False)
emailFrom = ""
Else
emailFrom = msg.InternetAccountName.Replace("'", "")
emailFrom = msgInternetAccountName.ToString.Replace("'", "")
End If
Else
emailFrom = ClassEmailHeaderExtractor.extractFromAddress(headers, FromRegexList)
emailTo = ClassEmailHeaderExtractor.extractToAddress(headers, ToRegexList)
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailTo and From Extraction via messageheader.", False)
emailFrom = ClassEmailHeaderExtractor.extractFromAddress1(headers, fromPattern) 'FromRegexList)
emailFrom = ClassEmailHeaderExtractor.extractFromAddress1(emailFrom, finalize_pattern)
emailTo = ClassEmailHeaderExtractor.extractFromAddress1(headers, toPattern) ' extractToAddress(headers, ToRegexList)
emailTo = ClassEmailHeaderExtractor.extractFromAddress1(emailTo, finalize_pattern)
If IsNothing(emailFrom) Or IsNothing(emailTo) Then
MsgBox("Unhandled Exception in SetEmailIndices - emailfrom or recipiant are empty and defaults could not be set." & vbNewLine & "Please check the dropped email and Configuration of Email-Indexing!", MsgBoxStyle.Exclamation)
Return False
emailFrom = emailFrom.Replace("<", "")
emailFrom = emailFrom.Replace(">", "")
If Not IsNothing(emailTo) Then
emailTo = emailTo.Replace("<", "")
emailTo = emailTo.Replace(">", "")
End If
If Not IsNothing(emailTo) Then
Dim _duplicatesCheck As List(Of String) = New List(Of String)
_duplicatesCheck = emailTo.ToString.Split(";").ToList
' Filter distinct elements, and convert back into list.
Dim result As List(Of String) = _duplicatesCheck.Distinct().ToList
' Display result.
Dim i As Integer = 0
For Each element As String In result
If i = 0 Then
emailTo = element
Else
emailTo = emailTo & ";" & element
End If
i += 1
Next
End If
If LogErrorsOnly = False Then ClassLogger.Add("", True)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Headers-Content: ", True)
If LogErrorsOnly = False Then ClassLogger.Add(headers.ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add("", True)
End If
'Handler für leere emailFrom-Adresse
If IsNothing(emailFrom) Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailFrom couldn't be extracted from messageheader...", False)
If Not IsNothing(msg.SenderEmailAddress) Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailFrom via msg.SenderEmailAddress will be used instead!", False)
emailFrom = msg.SenderEmailAddress.ToString.Replace("'", "")
Else
MsgBox("Could't get 'emailfrom' from messageHeader." & vbNewLine & "Please check the dropped email and Configuration of Email-Indexing!", MsgBoxStyle.Exclamation)
Return False
End If
End If
'Handler für leere emailTo-Adresse
If IsNothing(emailTo) Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailTo couldn't be extracted from messageheader...", False)
If (headers.Contains("exc") Or headers.Contains("exchange")) Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> ...try with LDAP-option", False)
Dim _email = GetUserEmailfromLDAP(msgDisplayTo)
If _email <> "" Then
emailTo = _email
Else
ClassLogger.Add(">> email-adress couldn't be read from LDAP with name '" & msgDisplayTo & "'", False)
MsgBox("Could't get 'emailto' from messageHeader and later on with LDAP-Option." & vbNewLine & "Please check the dropped email and Configuration of Email-Indexing!", MsgBoxStyle.Exclamation)
Return False
End If
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> no exchange patterns found in headers!", False)
MsgBox("Could't get 'emailto' from messageHeader and exhange-Patterns weren't found." & vbNewLine & "Please check the dropped email and Configuration of Email-Indexing!", MsgBoxStyle.Exclamation)
Return False
End If
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailFrom: " & emailFrom, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailTo: " & emailTo, False)
@@ -1338,6 +1446,37 @@ Public Class frmIndex
End Function
Public Function GetUserEmailfromLDAP(ByVal userName As String) As String
Dim domainName As String = Environment.UserDomainName '"PutYourDomainNameHere" '< Change this value to your actual domain name. For example: "yahoo"
Dim dommain As String = "com" '<change this value to your actual domain region. For example: "com" as in "yahoo.com"
Dim path As String = String.Format("LDAP://CN=User,DC={0}", domainName)
Dim userEmail As String = String.Empty
Using search As DirectorySearcher = New DirectorySearcher(path)
Dim result As SearchResult
Try
search.Filter = "(SAMAccountName=" & userName & ")"
search.PropertiesToLoad.Add("mail")
result = search.FindOne()
Catch ex As Exception
search.Filter = ""
search.Filter = "(GivenName=" & userName & ")"
search.PropertiesToLoad.Add("mail")
End Try
Try
result = search.FindOne()
If result IsNot Nothing Then userEmail = result.Properties("mail").ToString
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in GetUserEmail from LDAP: " & ex.Message, False)
End Try
End Using
Return userEmail
End Function
Private Function SetAttachmentIndices()
Dim indexierung_erfolgreich As Boolean = True
@@ -1498,26 +1637,26 @@ Public Class frmIndex
CURRENT_ISATTACHMENT = False
DropType = ClassDatabase.Execute_Scalar("SELECT HANDLE_TYPE FROM TBGI_FILES_USER WHERE GUID = " & CURRENT_WORKFILE_GUID, MyConnectionString, True)
chkdelete_origin.Visible = False
If DropType = "@DROPFROMFSYSTEM@" Then
If DropType = "|DROPFROMFSYSTEM|" Then
chkdelete_origin.Visible = True
chkdelete_origin.Checked = Delete_OriginFile
Me.Text = "Indexierung der gedroppten Datei:"
ElseIf DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Then
ElseIf DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Then
Select Case DropType
Case "@FW_MSGONLY@"
Case "|FW_MSGONLY|"
If LogErrorsOnly = False Then ClassLogger.Add(" >> .msg-file from folderwatch", False)
Me.Text = "Indexierung der msg-Datei (ohne Anhang) - aus Folderwatch:"
Case "@OUTLOOK_MESSAGE@"
Case "|OUTLOOK_MESSAGE|"
If LogErrorsOnly = False Then ClassLogger.Add(" >> .msg-file through dragdrop", False)
Me.Text = "Indexierung der msg-Datei (ohne Anhang):"
End Select
ElseIf DropType = "@MSGONLY@" Then
ElseIf DropType = "|MSGONLY|" Then
Me.Text = "Indexierung der msg-Datei (ohne Anhang):"
ElseIf DropType = "@ATTMNTEXTRACTED@" Or DropType = "@OUTLOOK_ATTACHMENT@" Then
ElseIf DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then
CURRENT_ISATTACHMENT = True
Me.Text = "Indexierung eines Email-Attachments:"
ElseIf DropType = "@FW_SIMPLEINDEXER@" Then
ElseIf DropType = "|FW_SIMPLEINDEXER|" Then
Me.Text = "Indexierung einer Folderwatch-Datei:"
End If
txtIndexfilepath.Text = CURRENT_WORKFILE
@@ -1602,8 +1741,11 @@ Public Class frmIndex
lblhinweis.Visible = False
lblerror.Visible = False
Me.pnlIndex.Controls.Clear()
Dim sql As String = "Select WINDREAM_DIRECT from TBDD_DOKUMENTART WHERE GUID = " & cmbDokumentart.SelectedValue
WDDirect = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
Dim sql As String = "Select WINDREAM_DIRECT, DUPLICATE_HANDLING from TBDD_DOKUMENTART WHERE GUID = " & cmbDokumentart.SelectedValue
Dim DT_DOKART As DataTable = ClassDatabase.Return_Datatable(sql)
WDDirect = DT_DOKART.Rows(0).Item("WINDREAM_DIRECT")
CURRENT_DOKART_DUPLICATE_HANDLING = DT_DOKART.Rows(0).Item("DUPLICATE_HANDLING")
Refresh_IndexeMan(cmbDokumentart.SelectedValue)
End If
@@ -1613,12 +1755,12 @@ Public Class frmIndex
Private Sub Refresh_IndexeMan(dokartid As Integer)
Dim sql
Try
Sql = "select T1.BEZEICHNUNG AS DOKUMENTART,T.* from TBDD_INDEX_MAN T, TBDD_DOKUMENTART T1 where T.ACTIVE = 1 AND T.DOK_ID = T1.GUID AND T.DOK_ID = " & dokartid & " ORDER BY T.SEQUENCE"
sql = "select T1.BEZEICHNUNG AS DOKUMENTART,T.* from TBDD_INDEX_MAN T, TBDD_DOKUMENTART T1 where T.ACTIVE = 1 AND T.DOK_ID = T1.GUID AND T.DOK_ID = " & dokartid & " ORDER BY T.SEQUENCE"
DT_INDEXEMAN = ClassDatabase.Return_Datatable(sql)
pnlIndex.Visible = True
LoadIndexe_Man()
Catch ex As System.Exception
ClassLogger.Add(" - Fehler Refresh_IndexeMan: DOKART-ID: " & dokartid & " - Fehler: " & vbNewLine & ex.Message & vbNewLine & Sql)
ClassLogger.Add(" - Fehler Refresh_IndexeMan: DOKART-ID: " & dokartid & " - Fehler: " & vbNewLine & ex.Message & vbNewLine & sql)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Refresh_IndexeMan:")
End Try
End Sub
@@ -1723,6 +1865,7 @@ Public Class frmIndex
If DT_INDEXAUTOM.Rows.Count > 0 Then
' MsgBox(DT.Rows.Count.ToString)
For Each DR_AUTOINDEX As DataRow In DT_INDEXAUTOM.Rows
Dim optionalIndex As Boolean
Dim indexname As String = DR_AUTOINDEX.Item("INDEXNAME")
If LogErrorsOnly = False Then ClassLogger.Add(" >> Build Automatischer Index '" & indexname & "'", False)
If DR_AUTOINDEX.Item("SQL_RESULT").ToString <> String.Empty And CBool(DR_AUTOINDEX.Item("SQL_ACTIVE")) = True Then
@@ -1736,6 +1879,7 @@ Public Class frmIndex
Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(SqlString)
' alle Vorkommen der Indexe im SQL-String durchlaufen
For Each element As System.Text.RegularExpressions.Match In elemente
' MsgBox(element.Value.ToUpper)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Element: '" & element.Value & "'", False)
'' wenn es sich nicht um dedizeirte Werte handelt (es sollen ja nur die Indexe ausgelesen werden)
@@ -1743,17 +1887,60 @@ Public Class frmIndex
'die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index)
Dim elementOhneSonderzeichen As String = element.Value.Substring(2, element.Value.Length - 3)
If LogErrorsOnly = False Then ClassLogger.Add(" >> elementOhneSonderzeichen: '" & elementOhneSonderzeichen & "'", False)
'den Platzhalter im SQL-String durch den Wert ersetzen
Dim manIndexwert = GetManIndex_Value(elementOhneSonderzeichen, "IDX_AUTO")
optionalIndex = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & elementOhneSonderzeichen & "')", MyConnectionString, True)
If elementOhneSonderzeichen.StartsWith("$") Then 'windowsParameter
Dim result = ""
Try
Select Case elementOhneSonderzeichen.ToString.ToUpper
Case "$filename_ext".ToUpper
result = Path.GetFileName(CURRENT_WORKFILE)
Case "$filename".ToUpper
result = Path.GetFileNameWithoutExtension(CURRENT_WORKFILE)
Case "$extension".ToUpper
result = Path.GetExtension(CURRENT_WORKFILE)
result = result.Replace(".", "")
Case "$FileCreateDate".ToUpper
Dim FI As New FileInfo(CURRENT_WORKFILE)
Dim CreationDate As Date = FI.CreationTime
result = CreationDate.ToShortDateString
Case "$FileCreatedWho".ToUpper
Dim fs As FileSecurity = File.GetAccessControl(CURRENT_WORKFILE)
Dim sid As IdentityReference = fs.GetOwner(GetType(SecurityIdentifier))
Dim ntaccount As IdentityReference = sid.Translate(GetType(NTAccount))
Dim owner As String = ntaccount.ToString()
result = owner
Case "$DateDDMMYYY".ToUpper
result = System.DateTime.Now.ToShortDateString
Case "$Username"
result = Environment.UserName
Case "$Usercode"
result = CURRENT_USER_SHORT
End Select
Catch ex As Exception
result = "XXX"
ClassLogger.Add(" - Unexpected error in FillIndexe_Autom - WindowsFilePatterns - Fehler: " & vbNewLine & ex.Message)
MsgBox("Unexpected error in Replacement WindowsFilePatterns: " & vbNewLine & ex.Message & vbNewLine & vbNewLine & "Routine will continue - Please check logfile", MsgBoxStyle.Exclamation, )
End Try
If result <> "" Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> file-related parameter found: '" & elementOhneSonderzeichen & "' - Result: '" & result & "'", False)
SqlString = SqlString.Replace(element.Value, result)
Else
ClassLogger.Add(">> Attention: file-related parameter '" & elementOhneSonderzeichen & "' returned an empty string!", False)
End If
Else 'ganz normaler manueller Index
'den Platzhalter im SQL-String durch den Wert ersetzen
Dim manIndexwert = GetManIndex_Value(elementOhneSonderzeichen, "IDX_AUTO", optionalIndex)
If Not IsNothing(manIndexwert) Then
SqlString = SqlString.Replace(element.Value, manIndexwert)
If Not IsNothing(manIndexwert) Then
SqlString = SqlString.Replace(element.Value, manIndexwert)
If LogErrorsOnly = False Then ClassLogger.Add(" >> zusammengesetzter SQL-String: " & SqlString, False)
Else
ClassLogger.Add(">> Attention: manIndexwert is NOTHING - Funktion: FillIndexe_Autom", False)
Return False
Else
ClassLogger.Add(">> Attention: manIndexwert is NOTHING - Funktion: FillIndexe_Autom", False)
' Return False
End If
End If
Next
If LogErrorsOnly = False Then ClassLogger.Add(" >> Replaced and complete SQL-result: " & SqlString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ausführen SQL....", False)
Dim automatischerValue As String = ""
automatischerValue = Get_AutomatischerIndex_SQL(SqlString, DR_AUTOINDEX.Item("CONNECTION_ID"), DR_AUTOINDEX.Item("SQL_PROVIDER"))
@@ -1762,9 +1949,16 @@ Public Class frmIndex
DR_AUTOINDEX.Item("Indexiert") = True
DR_AUTOINDEX.Item("Indexwert") = automatischerValue
Else
ClassLogger.Add(" - ACHTUNG: automatischerValue = String.Empty - Funktion: FillIndexe_Autom", False)
ClassLogger.Add(" - SqlString: " & SqlString, False)
Return False
If optionalIndex = True Then
DR_AUTOINDEX.Item("Indexiert") = True
DR_AUTOINDEX.Item("Indexwert") = "EMPTY_OI"
' Return True
Else
ClassLogger.Add(" - ACHTUNG: automatischerValue = String.Empty - Funktion: FillIndexe_Autom", False)
ClassLogger.Add(" - SqlString: " & SqlString, False)
' Return False
End If
End If
Else
If Not IsDBNull(DR_AUTOINDEX.Item("VALUE")) Then
@@ -1778,6 +1972,8 @@ Public Class frmIndex
DEFAULTVALUE = Path.GetFileName(CURRENT_WORKFILE)
Case "$filename".ToUpper
DEFAULTVALUE = Path.GetFileNameWithoutExtension(CURRENT_WORKFILE)
Case "$extension".ToUpper
DEFAULTVALUE = Path.GetExtension(CURRENT_WORKFILE)
Case "$FileCreateDate".ToUpper
Dim FI As New FileInfo(CURRENT_WORKFILE)
Dim CreationDate As Date = FI.CreationTime
@@ -1851,7 +2047,6 @@ Public Class frmIndex
End If
Next
Case ".xlsx"
Console.WriteLine("xlsx file")
Dim pProcess() As Process = System.Diagnostics.Process.GetProcessesByName("excel")
Dim filename As String = Path.GetFileNameWithoutExtension(CURRENT_WORKFILE)
For Each p As Process In pProcess
@@ -1862,7 +2057,6 @@ Public Class frmIndex
Case Else
If My.Settings.DoNot_Show_Documents = False And UniversalViewer_Path <> "" Then
If File.Exists(UniversalViewer_Path) Then
Console.WriteLine(Path.GetExtension(CURRENT_WORKFILE))
Dim psi As New ProcessStartInfo(UniversalViewer_Path, """" & CURRENT_WORKFILE & """")
Proc.EnableRaisingEvents = True
Proc.StartInfo = psi
@@ -1978,6 +2172,7 @@ Public Class frmIndex
If LogErrorsOnly = False Then ClassLogger.Add(" >> Datei " & CURRENT_WORKFILE & " wird nun indexiert...", False)
If FillIndexe_Autom(Me.cmbDokumentart.SelectedValue) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...FillIndexe_Autom durchlaufen", False)
'Den Zielnamen zusammenbauen
If Name_Generieren() = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...Name_Generieren durchlaufen", False)
@@ -1988,23 +2183,23 @@ Public Class frmIndex
If Move_File2_Target() = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...Move_File2_Target durchlaufen", False)
'Die Originaldatei löschen
If DropType = "@DROPFROMFSYSTEM@" Then
If DropType = "|DROPFROMFSYSTEM|" Then
If chkdelete_origin.Checked = True Then
'Die temporäre Datei löschen
DeleteFile()
End If
ElseIf DropType = "@ATTMNTEXTRACTED@" Or DropType = "@OUTLOOK_ATTACHMENT@" Then
ElseIf DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then
'Die temporäre Datei löschen
If CURRENT_WORKFILE.EndsWith("pdf") Then
Me.PdfViewer1.DocumentFilePath = ""
End If
DeleteFile()
ElseIf (DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Or DropType = "@MSGONLY@") Then
ElseIf (DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Or DropType = "|MSGONLY|") Then
'Die temporäre Datei löschen
DeleteFile()
ElseIf DropType = "@FW_SIMPLEINDEXER@" Then
ElseIf DropType = "|FW_SIMPLEINDEXER|" Then
'Die temporäre Datei löschen
DeleteFile()
@@ -2059,11 +2254,11 @@ Public Class frmIndex
CURRENT_WORKFILE = filerow.Item("FILENAME2WORK")
DropType = filerow.Item("HANDLE_TYPE")
'Dim HandleType As String = filerow.Item("HANDLE_TYPE")
'If HandleType = "@DROPFROMFSYSTEM@" Then
'If HandleType = "|DROPFROMFSYSTEM|" Then
' DropType = "dragdrop file"
'ElseIf HandleType = "@OUTLOOK_ATTMNT@" Then
'ElseIf HandleType = "|OUTLOOK_ATTMNT|" Then
' DropType = "dragdrop attachment"
'ElseIf HandleType = "@OUTLOOKMESSAGE@" Then
'ElseIf HandleType = "|OUTLOOKMESSAGE|" Then
' DropType = "dragdrop message"
'End If
If WORK_FILE() = False Then
@@ -2115,9 +2310,9 @@ Public Class frmIndex
End If
End If
If DropType = "@DROPFROMFSYSTEM@" Or DropType = "@OUTLOOK_ATTACHMENT@" Or DropType = "@ATTMNTEXTRACTED@" Or DropType = "@FW_SIMPLEINDEXER@" Then
If DropType = "|DROPFROMFSYSTEM|" Or DropType = "|OUTLOOK_ATTACHMENT|" Or DropType = "|ATTMNTEXTRACTED|" Or DropType = "|FW_SIMPLEINDEXER|" Then
exp2WD = SINGLEFILE_2_WINDREAM(CURR_DOKART_OBJECTTYPE)
ElseIf DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Or DropType = "@MSGONLY@" Then
ElseIf DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Or DropType = "|MSGONLY|" Then
exp2WD = SINGLEFILE_2_WINDREAM(CURR_DOKART_OBJECTTYPE)
End If
If exp2WD = True Then
@@ -2136,14 +2331,14 @@ Public Class frmIndex
Try
Insert_String = sql_history_INSERT_INTO & ",ADDED_WHO) VALUES ('" & CURRENT_WORKFILE & "','" & CURRENT_NEWFILENAME & "'" & sql_history_Index_Values & ",'" & Environment.UserDomainName & "\" & Environment.UserName & "')"
ClassDatabase.Execute_Scalar(Insert_String, MyConnectionString, True)
If DropType.Contains("MSG") Or DropType = "@ATTMNTEXTRACTED@" Or DropType = "@OUTLOOK_ATTACHMENT@" Then
If DropType.Contains("MSG") Or DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then
If CURRENT_MESSAGEID <> "" Then
Dim max As String = "SELECT MAX(GUID) FROM TBGI_HISTORY"
Dim GUID = ClassDatabase.Execute_Scalar(max, MyConnectionString, True)
Try
If GUID > 0 Then
Dim sqlUpdate As String
If DropType = "@ATTMNTEXTRACTED@" Or DropType = "@OUTLOOK_ATTACHMENT@" Then
If DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then
sqlUpdate = "Update TBGI_HISTORY SET ATTACHMENT = 1, MSG_ID = '" & CURRENT_MESSAGEID & "' WHERE GUID = " & GUID
ClassDatabase.Execute_non_Query(sqlUpdate, True)
Else
@@ -2187,7 +2382,6 @@ Public Class frmIndex
Private Sub PdfViewer1_ZoomChanged(sender As Object, e As DevExpress.XtraPdfViewer.PdfZoomChangedEventArgs)
If Not PdfViewer1.ZoomMode = DevExpress.XtraPdfViewer.PdfZoomMode.Custom Then
Console.WriteLine(PdfViewer1.ZoomMode)
'SaveMySettingsValue("PDFViewer_ZoomMode", PdfViewer1.ZoomMode)
'PDFViewer_ZoomMode = PdfViewer1.ZoomMode
End If
@@ -2221,14 +2415,14 @@ Public Class frmIndex
' alle Vorkommen innerhalb des Ordnerstrings durchlaufen
For Each element As System.Text.RegularExpressions.Match In elemente
If LogErrorsOnly = False Then ClassLogger.Add(" >> Elementname in FolderString: '" & element.ToString & "'", False)
Console.WriteLine(element.ToString)
Select Case element.Value.Substring(2, 1).ToUpper
'Manueller Indexwert
Case "M"
Dim ManIndexname = element.Value.Substring(3, element.Value.Length - 4)
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & ManIndexname & "')", MyConnectionString, True)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Versuch den Indexwert aus '" & ManIndexname & "' auszulesen.", False)
Dim ManIndex_Value As String = GetManIndex_Value(ManIndexname, "FILE")
Dim ManIndex_Value As String = GetManIndex_Value(ManIndexname, "FILE", optional_index)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ergebnis/Wert für neuen Ordner: '" & ManIndexname & "'", False)
If Not ManIndex_Value = String.Empty Then
If IsDate(ManIndex_Value) Then
@@ -2237,7 +2431,7 @@ Public Class frmIndex
folderindex = folderindex.Replace(element.ToString, ManIndex_Value)
If LogErrorsOnly = False Then ClassLogger.Add(" >> FolderPattern: '" & folderindex & "'", False)
Else
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & ManIndexname & "')", MyConnectionString, True)
If optional_index = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Optionaler Indexwert ist NICHT gefüllt", False)
Else
@@ -2251,8 +2445,13 @@ Public Class frmIndex
Dim AutoIndex_Value As String = GetAutoIndex_Value(AutoIndexname)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ergebnis/Wert für neuen Ordner: '" & AutoIndexname & "'", False)
If Not AutoIndex_Value = String.Empty Then
folderindex = folderindex.Replace(element.ToString, AutoIndex_Value)
If LogErrorsOnly = False Then ClassLogger.Add(" >> FolderPattern: '" & folderindex & "'", False)
If AutoIndex_Value = "EMPTY_OI" Then
folderindex = folderindex.Replace(element.ToString, "")
Else
folderindex = folderindex.Replace(element.ToString, AutoIndex_Value)
If LogErrorsOnly = False Then ClassLogger.Add(" >> FolderPattern: '" & folderindex & "'", False)
End If
Else
ClassLogger.Add(" - Achtung Ausnahme in 'CrFolderForIndex': der Index ist leer!", True)
End If
@@ -2316,38 +2515,65 @@ Public Class frmIndex
End If
'Die aktuelle Datei soll gleichzeitig verschoben werden
Dim extension As String = Path.GetExtension(CURRENT_NEWFILENAME)
Dim Dateiname As String = Path.GetFileName(CURRENT_NEWFILENAME)
Dim _Pfad, _WDLaufwerk, _Ziel As String
_Ziel = fullpath & Dateiname
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ziel: " & _Ziel, False)
'Nur verschieben und überprüfen wenn Pfad ungleich
Dim quell = Path.GetDirectoryName(CURRENT_NEWFILENAME)
Dim ziel = Path.GetDirectoryName(_Ziel)
If quell <> ziel Then
Dim Stammname As String = _Ziel.Substring(0, _Ziel.LastIndexOf("."))
Dim version As Integer = 2
Do While File.Exists(_Ziel) = True
If LogErrorsOnly = False Then ClassLogger.Add(" >> Achtung: Datei ' " & Path.GetFileName(_Ziel) & "' existiert bereits!", False)
Dim neuername As String = Stammname & "~" & version & extension
_Ziel = neuername
version = version + 1
Loop
CURRENT_NEWFILENAME = _Ziel
' My.Computer.FileSystem.MoveFile(fullfilename, _Ziel)
ClassLogger.Add(" >> Dateiname wurde nach CrFolderIndex-Methode erzeugt", False)
CURRENT_NEWFILENAME = _Ziel
Else
ClassLogger.Add(" >> Quell- und Zielordner identisch", False)
'ClassLogger.Add(" >> (CrFolderForIndex) Quell- und Zielordner identisch", False)
'If Path.GetFileName(fullfilename) <> Path.GetFileName(_Ziel) And File.Exists(_Ziel) Then
' ClassLogger.Add(" >> (CrFolderForIndex) Quell- und Zielname nicht identisch", False)
' FileSystem.Rename(_Ziel, Path.GetDirectoryName(_Ziel) & Path.GetFileName(fullfilename))
' ClassLogger.Add(" >> Datei wurde nach CrFolderIndex-Methode umbenannt", False)
' CURRENT_NEWFILENAME = _Ziel
'End If
End If
''Die aktuelle Datei soll gleichzeitig verschoben werden
'Dim extension As String = Path.GetExtension(CURRENT_NEWFILENAME)
'Dim Dateiname As String = Path.GetFileName(CURRENT_NEWFILENAME)
'Dim _Pfad, _WDLaufwerk, _Ziel As String
'_Ziel = fullpath & Dateiname
'If LogErrorsOnly = False Then ClassLogger.Add(" >> Ziel: " & _Ziel, False)
''Nur verschieben und überprüfen wenn Pfad ungleich
'Dim quell = Path.GetDirectoryName(CURRENT_NEWFILENAME)
'Dim ziel = Path.GetDirectoryName(_Ziel)
'If quell <> ziel Then
' If CURRENT_DOKART_DUPLICATE_HANDLING = "Default" Or CURRENT_DOKART_DUPLICATE_HANDLING = "Question" Then
' ''##########
' Dim msg = "Eine Datei mit identischem Namen existiert bereits! Wollen Sie die bestehende Datei ersetzen?"
' If USER_LANGUAGE <> "de-DE" Then
' msg = "Ther is already a file with the same name! Would You like to replace the file?"
' End If
' Dim result As MsgBoxResult
' result = MessageBox.Show(msg, "File alredy exists:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
' If result = MsgBoxResult.No Then
' _Ziel = ClassFilehandle.Versionierung_Datei(_Ziel).ToString.Substring(2)
' Else
' If ClassWindream.Delete_WDFile(_Ziel.Substring(2)) = False Then
' Return False
' End If
' End If
' ElseIf CURRENT_DOKART_DUPLICATE_HANDLING = "New version" Then
' _Ziel = ClassFilehandle.Versionierung_Datei(_Ziel).ToString.Substring(2)
' End If
' 'Dim Stammname As String = _Ziel.Substring(0, _Ziel.LastIndexOf("."))
' 'Dim version As Integer = 2
' 'Do While File.Exists(_Ziel) = True
' ' If LogErrorsOnly = False Then ClassLogger.Add(" >> Achtung: Datei ' " & Path.GetFileName(_Ziel) & "' existiert bereits!", False)
' ' Dim neuername As String = Stammname & "~" & version & extension
' ' _Ziel = neuername
' ' version = version + 1
' 'Loop
' If _Ziel.StartsWith("\") Then
' CURRENT_NEWFILENAME = "W:" & _Ziel
' Else
' CURRENT_NEWFILENAME = _Ziel
' End If
' ' My.Computer.FileSystem.MoveFile(fullfilename, _Ziel)
' ClassLogger.Add(" >> Dateiname wurde nach CrFolderIndex-Methode erzeugt", False)
'Else
' ClassLogger.Add(" >> Quell- und Zielordner identisch", False)
' 'ClassLogger.Add(" >> (CrFolderForIndex) Quell- und Zielordner identisch", False)
' 'If Path.GetFileName(fullfilename) <> Path.GetFileName(_Ziel) And File.Exists(_Ziel) Then
' ' ClassLogger.Add(" >> (CrFolderForIndex) Quell- und Zielname nicht identisch", False)
' ' FileSystem.Rename(_Ziel, Path.GetDirectoryName(_Ziel) & Path.GetFileName(fullfilename))
' ' ClassLogger.Add(" >> Datei wurde nach CrFolderIndex-Methode umbenannt", False)
' ' CURRENT_NEWFILENAME = _Ziel
' 'End If
'End If
Return True
'Else