Relative Dateipfade [gelöst]



  • Ich hab ein ganz triviales Problem, für das es keine Dokumentation zu geben scheint:
    Ich will einfach einen fstream mit einem relativen Dateipfad öffnen.



  • Joah, mach. Geht.



  • Ja, aber was ist die Syntax dafür? Ich bin Anfänger.



  • Die gleiche, wie bei jedem anderen fstream auch?



  • Ich kenn die doch nicht, sonst würde ich ja nicht fragen.


  • Mod

    Weißt du, wie du einen absoluten Pfad öffnest?

    Wenn ja -> relativer Pfad geht genau so, exakt gleiche Syntax. Denn der fstream hat überhaupt nichts mit Pfaden usw. zu tun, das ist für ihn alles bloß eine Zeichenkette, die das Betriebssystem für ihn auflöst.

    Wenn nein -> Wieso fragst du dann nicht danach, wie man überhaupt etwas öffnet?



  • Timon Paßlick schrieb:

    Ja, aber was ist die Syntax dafür? Ich bin Anfänger.

    Google "fstream":
    http://www.cplusplus.com/reference/fstream/fstream/
    Klick auf "(constructor)" unter "Public member functions":
    http://www.cplusplus.com/reference/fstream/fstream/fstream/
    Runterscrollen bis zum Beispiel.
    Ferdich.



  • Timon Paßlick schrieb:

    Ja, aber was ist die Syntax dafür? Ich bin Anfänger.

    Anfänger worin? Im Umgang mit einem Computer? Im Umgang mit dem Internet? Im Umgang mit google? Im Umgang mit allen oder?!



  • Ist doch gut, jetzt beruhigt euch doch mal. Ich hab das mit google nicht gefunden. Vielleicht dumm, aber kein Grund, ausfällig zu werden.



  • Timon Paßlick schrieb:

    Ist doch gut, jetzt beruhigt euch doch mal. Ich hab das mit google nicht gefunden. Vielleicht dumm, aber kein Grund, ausfällig zu werden.

    Wo ist denn jetzt Dein Problem? Zeige Code, was Du versucht hast!



  • Timon Paßlick schrieb:

    Ist doch gut, jetzt beruhigt euch doch mal. Ich hab das mit google nicht gefunden.

    Weswegen ich ja auch "den Weg" beschrieben habe.

    Timon Paßlick schrieb:

    Vielleicht dumm, aber kein Grund, ausfällig zu werden.

    Schon OK. Dumm is es nur wenn du nicht versuchst dein Google-Fu zu verbessern.

    Bloss... wer wurde denn ausfällig? Unfreundlich ja, aber ausfällig werden klingt für mich anders.



  • Ok, unfreundlich. Habe bisher in die open-Methode "Appdata\\Ordner\\Datei.txt" geschrieben und die Datei auch dort erstellt. Hat natürlich nicht geklappt. Hab dann gegoogelt, aber teilweise gab es nichts und teilweise habe ich es nicht verstanden. Seine Effektivität auf google zu erhöhen, finde ich auch sinnvoll.



  • Benutzt du Visual Studio? Guck mal in den Einstellungen nach dem Arbeitsverzeichnis des Programms.


  • Mod

    Timon Paßlick schrieb:

    Ok, unfreundlich. Habe bisher in die open-Methode "Appdata\\Ordner\\Datei.txt" geschrieben und die Datei auch dort erstellt. Hat natürlich nicht geklappt.

    Was heißt hier "hat natürlich nicht geklappt"? Wieso sollte das natürlich nicht klappen? Wenn der Pfad existiert und der Anwender die nötigen Rechte hat, dann ist das genau wie es geht. Die wahrscheinlichste Ursache ist, dass das aktuelle Arbeitsverzeichnis (von dem aus die relativen Pfade losgehen) nicht das ist, was du denkt.



    1. Du meinst aber nicht den windows %appdata% Ordner oder?
    2. Ich gehe davon aus, dass der Pfad relativ zu der Position deines Programms sein soll, aber in vielen Entwicklungsumgebungen ist es nicht relativ zu deinem Programm, sondern verschoben (da sich verschiedene builds (Debug/Release) die gleichen resourcen teilen.

    EDIT: quick & dirty kannst du auch schnell mit system("dir") rausfinden wo du bist. (EDIT 2: bitte nicht parsen oder sowas, nur damit du weißt, wo du dich generell befindest, wenn du für deine IDE nicht weißt wo man das einstellt / rausfindet.)



  • Timon Paßlick schrieb:

    Ok, unfreundlich. Habe bisher in die open-Methode "Appdata\\Ordner\\Datei.txt" geschrieben und die Datei auch dort erstellt. Hat natürlich nicht geklappt. Hab dann gegoogelt, aber teilweise gab es nichts und teilweise habe ich es nicht verstanden. Seine Effektivität auf google zu erhöhen, finde ich auch sinnvoll.

    Relative Pfade beziehen sich IMMER auf das AKTUELLE Verzeichnis Deiner Anwendung.

    Startest Du Deine Anwendung von der Kommandozeile, siehst Du das aktuelle Verzeichnis im Prompt.
    Benutzt Du den Explorer, steht das aktuelle Verzeichnis in der Verknüpfung, oder falls Du direkt das Programm startest, ist es der Speicherort der Anwendung selbst.
    Startest Du das Programm aus Visual Studio, kannst Du das Startverzeichnis in den Projekteinstellungen festlegen.

    Dein Programm kann aber auch das aktuelle Verzeichnis selbst ändern. Dazu gibt es die Funktion chdir.

    VG Martin



  • Danke, ihr habt mir alles in allem sehr geholfen. 😋


Anmelden zum Antworten