Eigene Dateien Pfad in c++ ermitteln
-
Hi
ich kann mir jemand erklären wie ich den pfad der eigenen dateien in c++ ermitteln kann?? arbeite mit visual studio
ps: bitte erklärt es so das es ein anfänger versteht!!
danke
PLahm21
-
In Standard C++? Keine Möglichkeit.
Benutze boost oder WinApi.
-
was ist boost wenn ich fragen darf??
-
Mit Standard C++ ist sowas nicht machbar. Dies ist eine Sache des Betriebsystems, also platformspezifisch. In der WinAPI gibt es dazu
SHGetFolderPath
, wo man eine entsprechendeCSIDL
übergeben muss.
SHGetFolderPath - MSDN
CSIDL Liste - MSDNDie richtige CSIDL ist glaub ich CSIDL_PERSONAL.
@MrCrown,
Boost? Sowas geht mit Boost? Oder meinst du einfach Boost.Filesystem und dann manuelle Angabe des Pfades?Grüssli
-
danke schonmal aber kannst du villeicht noch en kurzes code beispiel posten?? werd aus der msdn nicht schlau mach das noch nicht so lang und mein englisch ist auch nicht perfekt..
-
-
@Dravere
Genau, ich meine Boost.filesystem.
-
PLahm21 schrieb:
was ist boost wenn ich fragen darf??
Eine Sammlung von Bibliotheken. http://www.boost.org/
-
Mr Crown schrieb:
@Dravere
Genau, ich meine Boost.filesystem.Wird dir aber nix nützen, wenn du den Pfad für die Eigenen Dateien ermitteln willst. Die Eigenen Dateien kann der User des Betriebsystem hinsetzen, wo er möchte. Boost.Filesystem kennt die CSIDL nicht, kann daher den korrekten Pfad nicht herausfinden.
Wenn man den Pfad dann mal ermittelt hat, mag Boost.Filesystem vielleicht nützlich sein, aber vorher nichtGrüssli
-
Es geht unter Linux/UNIX mit der C-Lib:
printf ("Bin hier %s\n", getenv ("PWD"));
oder
std:string Pfad; Pfad = getenv ("PWD"); // mach was mit Pfad
Es sollte sowas eigentlich auch unter Win geben?!?
-
@hartmut1164,
Die "Eigenen Dateien" sind aber nicht das aktuelle Arbeitsverzeichnis und das ist, was PWD unter UNIX dir ausgibt.
Die Lösung für Windows für die "Eigenen Dateien" habe ich schon weiter oben hingeschrieben.Grüssli
-
Dravere schrieb:
@hartmut1164,
Die "Eigenen Dateien" sind aber nicht das aktuelle Arbeitsverzeichnis und das ist, was PWD unter UNIX dir ausgibt.Was gibt denn HOME unter UNIX aus? Bin nicht so der *X-Kenner, daher bin ich nicht sicher ob das immer gesetzt ist.
-
pumuckl schrieb:
Was gibt denn HOME unter UNIX aus?
http://de.wikipedia.org/wiki/Umgebungsvariable#Vordefinierte_Umgebungsvariablen
Also den persönlichen Ordner.Das hat mich allerdings grad auf eine Idee gebracht, es gibt tatsächlich etwas ähnliches unter Windows:
APPDATA -> Anwendungsdaten Ordner
USERPROFILE -> Der Ordner in dem die Eigenen Dateien liegenLeider gibt es keine Umgebungsvariable, welche für die Eigenen Dateien direkt steht. Und da der Namen von der gewählten Sprache abhängt, nützen einem auch diese Umgebungsvariablen nicht viel. Am besten geht man, wie ich es schon hingeschrieben habe, über die WinAPI und die entsprechende CSIDL.
pumuckl schrieb:
Bin nicht so der *X-Kenner, daher bin ich nicht sicher ob das immer gesetzt ist.
Bin ich auch nicht, aber dafür gibt es Google und Wikipedia. Wikipedia hat meistens sogar sehr viele Informationen über UNIX. Man hat manchmal das gefühl, dass da einfach die
man
Pages rüberkopiert wurdenGrüssli