Datei in einem Unteordner speichern



  • Hallo,

    ich stehe gerade vor einem kleinen Problem und komme nicht ganz dahinter, wie ich eine Txt-Datei, die ich mit C++ erstelle in einem Unterordner speichere.

    Bisher habe ich diese Zeile:

    outputFile.open("Time.txt", std::ios::out | std::fstream::app);
    

    Also wird die Datei in dem aktuellen Ordner gespeichert.
    Jetzt weiß ich, dass mein Unterordner

    temp

    heißt.
    Das ganze soll auf verschiedenen Rechner laufen. Also der Ort des Programms ändert sich ständig.

    Ich hoffe, dass Ihr mir kurz helfen könnt



  • Der Pfad, den man bei fstream-Instanzen angibt, ist in der Form relativ zum ausführenden Programmverzeichnis.

    D.h. wenn in dem Ordner, wo die *.exe liegt auch ein Ordner "temp" liegt, dann kannst mit

    outputFile.open("temp/Time.txt");
    

    auf eine Datei im Temp-Ordner zugreifen.

    Problematischer wirds, wenn es keinen Temp-Ordner gibt, weil mit Std-C++ kannst du den nicht erzeugen.
    Alternativen wären da plattformabhängige Befehle wie

    system("mkdir temp");
    // Windows
    CreateDirectory("temp", nullptr); // hab hier aber nicht die exakte Syntax im Kopf (!)
    

    oder Boost::Filesystem.



  • Ok, recht vielen Dank. Funktioniert einwandfrei 🙂


Anmelden zum Antworten