4. Dezember 201114 j Hallo Leute, gibt es eine Möglichkeit in C++ den Pfad der aktuell ausgeführten Datei zu ermitteln? Ich würde nämlich gerne wissen, in welchem Verzeichnis sich die .exe-Datei befindet, die gerade ausgeführt wird, da die Verzeichnisse ja von Benutzer zu Benutzer variieren. Über einen Code-Schnipsel würde ich mir sehr freuen. Viele Grüße
4. Dezember 201114 j http://msdn.microsoft.com/en-us/library/sf98bd4y(v=VS.100).aspx unter *nix heißt das Ding genauso, nur der Underscore kommt wesch.
4. Dezember 201114 j Das Arbeitsverzeichnis ist nicht das Verzeichnis, in dem die ausführbare Datei liegt. Unter Windows benutzt man GetModuleFileName. Wofür brauchst du den Pfad denn? Spätestens ab Vista hast du in dem Verzeichnis sowieso nichts zu suchen. Bearbeitet 4. Dezember 201114 j von Klotzkopp
4. Dezember 201114 j Das Arbeitsverzeichnis ist nicht das Verzeichnis, in dem die ausführbare Datei liegt. Nicht? :/ Was zeigt einem das CWD denn an? (man merkt, dass ich es bisher nicht benötigt habe *G*)
4. Dezember 201114 j Was zeigt einem das CWD denn an?Eben das CWD, also das aktuelle Arbeitsverzeichnis. Das ist das Verzeichnis, auf das sich relative Pfadangaben beziehen. Das ist eine veränderliche (daher das C in CWD) Eigenschaft eines Prozesses, die nichts damit zu hat, wo die ausführbare Datei steht. Wenn ein Programm aus dem enthaltenden Verzeichnis heraus gestartet wird, ist das CWD zu Anfang das Verzeichnis, in dem die ausführbare Datei steht. Aber erstens muss das nicht so sein, und zweitens kann sich das CWD ändern, während das Programm läuft. Bei Windows-Verknüpfungen kann man das anfängliche Arbeitsverzeichnis festlegen.
4. Dezember 201114 j Aber erstens muss das nicht so sein Ah. Ok. Das scheint mir das wichtigste daran zu sein. Vielen Dank! :]
4. Dezember 201114 j Wofür brauchst du den Pfad denn? Da jeder Benutzer die Datei sicherlich woanders abspeichert, benötige ich das Verzeichnis, um darein andere Dateien abzulegen wie z. B. .txt-Dateien. Das Arbeitsverzeichnis ist nicht das Verzeichnis, in dem die ausführbare Datei liegt. [...] Spätestens ab Vista hast du in dem Verzeichnis sowieso nichts zu suchen. Wie kommt man denn dann in das Verzeichnis, in dem die Datei abgelegt ist? Ich habe hier ein paar Varianten gefunden, wie man die Sache am besten angeht:c-plusplus.de Welche Möglichkeit würdet ihr empfehlen? Gruß
4. Dezember 201114 j Da jeder Benutzer die Datei sicherlich woanders abspeichert, benötige ich das Verzeichnis, um darein andere Dateien abzulegen wie z. B. .txt-Dateien.Warum? Konfigdateien gehören in den entsprechenden Pfad des Userprofiles. \User\Anwendungsdaten\lokale Einstellungen oder \User\lokale Einstellungen.
4. Dezember 201114 j Warum? Konfigdateien gehören in den entsprechenden Pfad des Userprofiles. \User\Anwendungsdaten\lokale Einstellungen oder \User\lokale Einstellungen. Ich weiß aber nicht, wie ich an den Usernamen rankommen soll. Beispielsweise unter XP: C:\\Dokumente und Einstellungen\xyz - an dieser Stelle kommt immer ein beliebiger Username; und diesen Pfad würde ich gerne herausbekommen.
4. Dezember 201114 j Und warum arbeitest du dann nicht mit der Betriebssystemvariable %userprofile%? Alternativ mal hier lesen: http://stackoverflow.com/questions/2760310/how-to-resolve-location-of-userprofile-programatically-in-c
4. Dezember 201114 j Und warum arbeitest du dann nicht mit der Betriebssystemvariable %userprofile%? Das liegt daran, dass ich nicht wusste, dass es das gibt. Bin halt noch Anfänger. Danke für den Tipp! Ich werd mich mal ein wenig damit beschäftigen.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.