Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben (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 von Klotzkopp
Geschrieben
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*)

Geschrieben
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.

Geschrieben
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ß

Geschrieben
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.

Geschrieben
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.

Geschrieben
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.

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...