Hallo,
Ich habe anscheinend ein illegales Zeichnen im Pfad, aber ich kann hab schon sogut wie alles untersucht aber ich kann da nix finden
Das Programm soll eine Datei in ein Array einlesen wobei ein Teil des Dateipfades Variabel ist. Ich habe schon probiert den Pfad mir in einer MsgBox ausgeben zu lassen und da sieht er gut aus.
Hier mein Code:
Der erste Durchgang läuft prima, aber wenn sich die i-Schleife wiederholt da sek_array 2 Einträge hat, bekommen ich die Fehlermeldung: System.ArgumentException: "Illegales Zeichen im Pfad."
Details:
System.ArgumentException ist aufgetreten.
HResult=0x80070057
Nachricht = Illegales Zeichen im Pfad.
Quelle = mscorlib
Stapelüberwachung:
bei System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
bei System.IO.Path.GetFileName(String path)
bei System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)
bei System.IO.File.InternalReadAllText(String path, Encoding encoding, Boolean checkHost)
bei System.IO.File.ReadAllText(String path)
bei Microsoft.VisualBasic.MyServices.FileSystemProxy.ReadAllText(String file)
bei MyLog.Form1.LoadFileSystem() in M:\Visual Studio\Projects\MyLog\MyLog\Form1.vb: Zeile75
bei MyLog.Form1.VB$StateMachine_10_Form1_Shown.MoveNext() in M:\Visual Studio\Projects\MyLog\MyLog\Form1.vb: Zeile110
Wobei der Fehler bei der Zeile mit der Msgbox auftaucht:
Wenn man diese Zeile entfernt dann springt der Fehler auf den nächsten Befehl mit " My.Computer.FileSystem.ReadAllText("C:\ProgramData\MyLog\Logs\" & sek_array(i) & "\config\display_name.txt") " im Code, also die darunter.
Die MsgBox die davor nur den Dateipfad an sich ausgibt zeigt an: "C:\ProgramData\MyLog\Logs\Beispiele\config\display_name.txt"
Wo ist der Fehler ??
Zusätliche Infos:
In "C:\ProgramData\MyLog\Logs\Beispiele\config\display_name.txt" steht:
[-- Beispiele --]
In "C:\ProgramData\MyLog\Logs\list.txt" steht:
My Log
Beispiele
Videodemonstartion: 1drv.ms/v/s!AkSyWHBD0qRojqRqiMCJRTJlR-7fnw
Schonmal Danke im Vorraus
Ich habe anscheinend ein illegales Zeichnen im Pfad, aber ich kann hab schon sogut wie alles untersucht aber ich kann da nix finden
Das Programm soll eine Datei in ein Array einlesen wobei ein Teil des Dateipfades Variabel ist. Ich habe schon probiert den Pfad mir in einer MsgBox ausgeben zu lassen und da sieht er gut aus.
Hier mein Code:
Visual Basic-Quellcode
- #Region "Dimensionieren"
- Dim sek_array() As String
- sek_array = My.Computer.FileSystem.ReadAllText("C:\ProgramData\MyLog\Logs\list.txt").Split(vbNewLine)
- Dim helper1 As Integer = sek_array.Length
- Dim sek_displayname(helper1) As String
- Dim sek_list(helper1) As String
- Dim sek_lockmode(helper1) As String
- Dim sek_purename(helper1) As String
- Dim sek_desc(helper1) As String
- #End Region
- #Region "Lade Sektionen"
- For i = sek_array.GetLowerBound(0) To sek_array.GetUpperBound(0)
- 'Die MsgBoxen sind hier nur zur Debugging zwecken um die Strings zu analysieren und zu schauen ob alles richtig läuft
- MsgBox("C:\ProgramData\MyLog\Logs\" & sek_array(i) & "\config\display_name.txt")
- MsgBox(My.Computer.FileSystem.ReadAllText("C:\ProgramData\MyLog\Logs\" & sek_array(i) & "\config\display_name.txt"))
- 'Lädt die Textdateien in die Arrays ein
- sek_displayname(i) = My.Computer.FileSystem.ReadAllText("C:\ProgramData\MyLog\Logs\" & sek_array(i) & "\config\display_name.txt")
- sek_list(i) = My.Computer.FileSystem.ReadAllText("C:\ProgramData\MyLog\Logs\" & sek_array(i) & "\config\list.txt")
- sek_lockmode(i) = My.Computer.FileSystem.ReadAllText("C:\ProgramData\MyLog\Logs\" & sek_array(i) & "\config\lockmode.txt")
- sek_purename(i) = My.Computer.FileSystem.ReadAllText("C:\ProgramData\MyLog\Logs\" & sek_array(i) & "\config\pure_name.txt")
- sek_desc(i) = My.Computer.FileSystem.ReadAllText("C:\ProgramData\MyLog\Logs\" & sek_array(i) & "\config\desc.txt")
- 'Die MsgBox ist hier nur eine Übergangslösung um zu erkennen ob alles Problemlos angezeigt wird
- Dim text As String = " Zusammenfassung von " & ControlChars.Quote & sek_array(i) & ControlChars.Quote & vbNewLine & "
- Ordername: " & sek_array(i) & "
- Anzeigename: " & sek_displayname(i) & "
- Originalname: " & sek_purename(i) & "
- Modus: " & sek_lockmode(i) & "
- Inhalte: " & vbNewLine & sek_list(i) & vbNewLine & vbNewLine & "
- Beschreibung: " & vbNewLine & sek_desc(i)
- MsgBox(text)
- Next i
- #End Region
Der erste Durchgang läuft prima, aber wenn sich die i-Schleife wiederholt da sek_array 2 Einträge hat, bekommen ich die Fehlermeldung: System.ArgumentException: "Illegales Zeichen im Pfad."
Details:
System.ArgumentException ist aufgetreten.
HResult=0x80070057
Nachricht = Illegales Zeichen im Pfad.
Quelle = mscorlib
Stapelüberwachung:
bei System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
bei System.IO.Path.GetFileName(String path)
bei System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)
bei System.IO.File.InternalReadAllText(String path, Encoding encoding, Boolean checkHost)
bei System.IO.File.ReadAllText(String path)
bei Microsoft.VisualBasic.MyServices.FileSystemProxy.ReadAllText(String file)
bei MyLog.Form1.LoadFileSystem() in M:\Visual Studio\Projects\MyLog\MyLog\Form1.vb: Zeile75
bei MyLog.Form1.VB$StateMachine_10_Form1_Shown.MoveNext() in M:\Visual Studio\Projects\MyLog\MyLog\Form1.vb: Zeile110
Wobei der Fehler bei der Zeile mit der Msgbox auftaucht:
Wenn man diese Zeile entfernt dann springt der Fehler auf den nächsten Befehl mit " My.Computer.FileSystem.ReadAllText("C:\ProgramData\MyLog\Logs\" & sek_array(i) & "\config\display_name.txt") " im Code, also die darunter.
Die MsgBox die davor nur den Dateipfad an sich ausgibt zeigt an: "C:\ProgramData\MyLog\Logs\Beispiele\config\display_name.txt"
Wo ist der Fehler ??
Zusätliche Infos:
In "C:\ProgramData\MyLog\Logs\Beispiele\config\display_name.txt" steht:
[-- Beispiele --]
In "C:\ProgramData\MyLog\Logs\list.txt" steht:
My Log
Beispiele
Videodemonstartion: 1drv.ms/v/s!AkSyWHBD0qRojqRqiMCJRTJlR-7fnw
Schonmal Danke im Vorraus