Leerzeichen in Pfadangabe !?



  • Hallo,

    ich will mit der Funktion .open() eine Textdatei zum Auslesen öffnen. Das ganze funktioniert einwandfrei, bis der eingegebene Pfad ein Leerzeichen enthält (z.b. Textdat_1.open("c:\\Test Ordner\\Textdatei.txt")), dann kann die Datei nicht geöffnet werden.
    Woran kann das liegen, bzw. wie würde es funktionieren ?

    MfG
    Carsten



  • hmm ... glaub für das leerzeichen gibts es ein imaginäres zeichen was im code verwendet weren kann... probier mal "_" oder google mal...



  • Da gibt es kein imaginäres Zeichen. Normalerweise fasst man Pfade mit Leerzeichen in Anführungsstriche ein. Was für ein open ist das überhaupt, das von ifstream?



  • Versuch mal %20 anstelle dem Leerzeichen.



  • das ist das open von ifstream...
    %20 hab ich schon probiert, hat leider nicht funktioniert!

    MfG
    Carsten



  • CarstenH schrieb:

    ich will mit der Funktion .open() eine Textdatei zum Auslesen öffnen. Das ganze funktioniert einwandfrei, bis der eingegebene Pfad ein Leerzeichen enthält (z.b. Textdat_1.open("c:\\Test Ordner\\Textdatei.txt")), dann kann die Datei nicht geöffnet werden.
    Woran kann das liegen, bzw. wie würde es funktionieren ?

    Bug in deinem Compiler oder du hast dich beim Test vertan und die Datei gibts wirlich nicht. Es gibt keinen vernünftigen Grund, warum ein Leerzeichen hier anders behandelt werden sollte als jedes andere Zeichen, das geht ja nicht über die Shell, sondern direkt ans OS.



  • Hat nichts mit C++ zu tun, hat was mit dem OS zu tun:

    Textdat_1.open("\"c:\\Test Ordner\\Textdatei.txt\""))
    


  • Doofe Frage: Muss ich das bei einem fstream.open machen? (Den Pfad in \" einschließen)

    fstream f;
    f.open(cFilename, ios::out + ios::binary);
    if (f) {
    f.write();
    }
    

    Ich schätze mal das ich heute noch ein paar Bugfixes vornehmen muss *g*



  • Also bei WinXP mit dem normalen VS6 Compiler gibt es keine Fehler wenn ein Leerzeichen im Pfad ist.
    @CarstenH: Was hast Du für einen Compiler/Windows/Linux?


Anmelden zum Antworten