BobKiller007 Geschrieben 4. Dezember 2011 Geschrieben 4. Dezember 2011 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
lilith2k3 Geschrieben 4. Dezember 2011 Geschrieben 4. Dezember 2011 http://msdn.microsoft.com/en-us/library/sf98bd4y(v=VS.100).aspx unter *nix heißt das Ding genauso, nur der Underscore kommt wesch.
Klotzkopp Geschrieben 4. Dezember 2011 Geschrieben 4. Dezember 2011 (bearbeitet) 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 2011 von Klotzkopp
lilith2k3 Geschrieben 4. Dezember 2011 Geschrieben 4. Dezember 2011 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*)
Klotzkopp Geschrieben 4. Dezember 2011 Geschrieben 4. Dezember 2011 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.
lilith2k3 Geschrieben 4. Dezember 2011 Geschrieben 4. Dezember 2011 Aber erstens muss das nicht so sein Ah. Ok. Das scheint mir das wichtigste daran zu sein. Vielen Dank! :]
BobKiller007 Geschrieben 4. Dezember 2011 Autor Geschrieben 4. Dezember 2011 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ß
Gast Geschrieben 4. Dezember 2011 Geschrieben 4. Dezember 2011 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.
BobKiller007 Geschrieben 4. Dezember 2011 Autor Geschrieben 4. Dezember 2011 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.
Gast Geschrieben 4. Dezember 2011 Geschrieben 4. Dezember 2011 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
BobKiller007 Geschrieben 4. Dezember 2011 Autor Geschrieben 4. Dezember 2011 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden