tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Turri
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
616
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    luigied luigied ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    77
    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 :
    1
    
    Dim reader As New StreamReader("Ordnername\Datei.xml")

    Aber
    Code :
    1
    2
    
    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
     

  2. #2
    Avatar von Turri
    Turri Turri ist offline Mitglied Brokat
    Registriert seit
    Jun 2005
    Beiträge
    354
    Hallo,

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

    Also:
    Code :
    1
    2
    
    Dim name As String = "Ordnername\\Datei.xml"
    Dim reader As New StreamReader(name)
    luigied bedankt sich. 
    MfG Turri

    PS: Wenn ich helfen konnte, würde ich mich über ein Danke oder eine positive Bewertung freuen. :-)

  3. #3
    luigied luigied ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    77
    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
     

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Hi

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

    Gruß
     

  5. #5
    luigied luigied ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    77
    Der absolute Pfad ist:
    C:\Users\Anwender\Studium\Masterprojekt\TCenter\TCenter\bin\Debug\TestOrdner\Datei.xml

    Das komplierte Programm liegt im Ordner Debug (suprise!)
     

  6. #6
    luigied luigied ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    77
    So, Problem ganz krass und technisch höchst anspruchsvoll gelöst

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    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
     

  7. #7
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Nur so aus Neugierde würde mich interessieren, was das ungültige Zeichen war. Ich kann in dem Pfad
    Zitat Zitat von luigied Beitrag anzeigen
    C:\Users\Anwender\Studium\Masterprojekt\TCenter\TCenter\bin\Debug\TestOrdner\Datei.xml
    keines finden.
     
    hihi = -h²

  8. #8
    luigied luigied ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    77
    Mit nem hardcodierten, relativen Pfad hatte es dann funktioniert. Brauchte die Funktion nur für Formulardaten. Ne Testaugabe ergab:

    Code :
    1
    2
    3
    4
    
    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
     

Ähnliche Themen

  1. Illegales Zeichen im Pfad
    Von PH234X im Forum .NET Windows Forms
    Antworten: 7
    Letzter Beitrag: 18.09.09, 20:38
  2. Antworten: 3
    Letzter Beitrag: 06.03.09, 00:24
  3. Probleme bei Verwendung von Pfad mit #-Zeichen
    Von MadMax2581 im Forum Java
    Antworten: 8
    Letzter Beitrag: 08.09.08, 20:14
  4. Antworten: 11
    Letzter Beitrag: 19.12.07, 20:04
  5. Illustrator: Pfad in einen Pfad 'einstanzen'
    Von Neo_matrix_gfx im Forum Vektor-Programme
    Antworten: 2
    Letzter Beitrag: 29.07.05, 02:34