Pfade ohne Usernamen
-
Wie kann ich einen Pfad mit Usernamen angeben, obwohl ich nicht weiß, wie der User heißt? Mit %Username% läuft's nicht und ich würde gerne wissen, wie man das in C++ macht.
-
GetUserName ?
-
Oder meinst Du einen der persönlichen Ordner wie "Eigene Dokumente" usw. ?
Deine Problembeschreibung ist ein wenig zu schwammig formuliert, damit wir Dir helfen zu können.
Martin
-
Ja, ich meine Eigene Dokumente!
-
SHGetFolderPath() http://msdn.microsoft.com/en-us/library/bb776911(VS.85).aspx ist Dein Freund.
Die Funktion liefert Dir die gewünschten Pfade abhängig ob persönlich für jeden aktuell angemeldeten User einzeln, oder für alle User gemeinsam.
Die Konstante CSIDL_xxx legt fest was für einen Ordner Du brauchst.Beispiele für CSIDL_xxx (nur ein kleiner Auszug aus http://msdn.microsoft.com/en-us/library/bb762494(VS.85).aspx ):
a) Persönliche Ordner, wobei xxx der Name des angemeldeten Users ist:
CSIDL_PERSONAL: 'C:\Dokumente und Einstellungen*xxx*\Eigene Dateien'
CSIDL_MYMUSIC: 'C:\Dokumente und Einstellungen*xxx*\Eigene Dateien\Eigene Musik'
CSIDL_MYPICTURES: 'C:\Dokumente und Einstellungen*xxx*\Eigene Dateien\Eigene Bilder'
CSIDL_DESKTOP: 'C:\Dokumente und Einstellungen*xxx*\Desktop'b) Für Anwendungsdaten, z.B. .INI-Dateien:
CSIDL_COMMON_APPDATA: 'C:\Dokumente und Einstellungen\All Users\Anwendungsdaten'
CSIDL_LOCAL_APPDATA: 'C:\Dokumente und Einstellungen*xxx\Lokale Einstellungen\Anwendungsdaten'
CSIDL_APPDATA: 'C:\Dokumente und Einstellungen*xxx*\Anwendungsdaten'HTH,
MartinP.S.: Immer die von SHGetFolderPath() gelieferten Pfade verwenden, niemals hard-codierte Strings verwenden! Denn man kann diese voreingestellten Pfade ändern, z.B. auf Netzlaufwerke legen usw.
[Nachtrag:]
Ab Windows Vista bzw. Windows Server 2008 kannst Du "Known folders" http://msdn.microsoft.com/en-us/library/bb776911(VS.85).aspx verwenden.
-
cout << getenv("UserProfile");
war das, was ich wollte. Das ist einfacher zu handhaben, aber es gibt nicht so viel Auswahl.
-
Und wie kriege ich das jetzt in
system("move [den Pfad mit Datei nach Zielverzeichnis]");
?