Illegales ZEichen im Pfad

luigied

Mitglied
Moin,

also die CLR macht mich noch fertig ...

Ich möchte in VB .NET einfach eine Datei mit einem StreamReader öffnen. Der Dateiname soll dabei variabel sein.

So funktioniert es:
Code:
Dim reader As New StreamReader("Ordnername\Datei.xml")

Aber
Code:
Dim name As String = "Ordnername\Datei.xml"
Dim reader As New StreamReader(name)

wirft eine System.ArgumentException: Illegales Zeichen im Pfad

Kann mir bitte jemand erklären, was ich hier falsch mache?

Mfg LuigiEd
 
Hallo,

Pfade sollten immer mit \\ anstatt nur einem \ angegeben werden.

Also:
Code:
Dim name As String = "Ordnername\\Datei.xml"
Dim reader As New StreamReader(name)
 
Hm, danke, aber das Escapen (ich hasse Denglisch) hat auch nix genützt.

Selbe Exception an selber Stelle ...

Sollte ich erwähnen, dass ich .NET 2.0 nutze? (Firma will es so wegen Abwärtskompatibilität)

Gruß, LuigiEd
 
Hi

ob .NET 2 oder 4 sollte hier ziemlich egal sein.
Kannst du eventuell einmal den wirklichen Pfad posten?

Gruß
 
Der absolute Pfad ist:
C:\Users\Anwender\Studium\Masterprojekt\TCenter\TCenter\bin\Debug\TestOrdner\Datei.xml

Das komplierte Programm liegt im Ordner Debug (suprise!)
 
So, Problem ganz krass und technisch höchst anspruchsvoll gelöst :D

Code:
Function cleanPath(ByVal fPath As String) As String
        For Each chara As Char In Path.GetInvalidPathChars
            relativeRoot = relativRoot.Replace(chara, "")
            fPath = fPath.Replace(chara, "")
        Next
        Dim filepath As String = Path.Combine(relativeRoot, fPath & ".XML")
        Return filepath
    End Function

realiveRoot ist beim mir eine globale Variable, die Ihren Wert aus einer config-Datei bekommt. Kann man auch weglassen. :)

mfg LuigiEd
 
Mit nem hardcodierten, relativen Pfad hatte es dann funktioniert. Brauchte die Funktion nur für Formulardaten. Ne Testaugabe ergab:

Code:
Testordner/Datei


                                                            .xml

wobei das ".xml" nicht aus dem Formular kommt.

Ich vermute mal, dass irgendwie noch tabs dran waren, weil Trim, auch nix gebracht hatte.

mfg
 

Neue Beiträge

Zurück