Wie man den AppData Pfad
SHGetSpecialFolderPathA(NULL,buffer, CSIDL_APPDATA,FALSE );
C:\Users\guest\AppData\Roaming
SHGetSpecialFolderPathA(NULL,buffer, CSIDL_LOCAL_APPDATA,FALSE );
C:\Users\guest\AppData\Local
Ist es Weg, um den Pfad C:\Users\guest\AppData
mithilfe der windows-API?
- Warum willst du es?
- Ich möchte vermeiden, alle Ordner, die unter Appdata. dh, wenn der Benutzer selecteds beliebigen Ordner unter AppaData, ich habe zu überspringen thoses.
- Eine weitere Frage, die HPFE455 heute war auf der Suche nach einem Temp-Ordner auf Win7. Ob dies im Zusammenhang zu einem Projekt, SHGetSpecialFolderPath ist veraltet seit Vista. Suche in der MSDN-Dokumentation beantwortet diese und viele Verwandte Fragen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Roaming, lokale Ordner vorhanden sind, für einen Grund, Sie brauchen manchmal etwas zu setzen, in der Wurzel das Profil aber Sie sind nicht wirklich soll, um es zu tun. Dies ist, was MSDN dazu sagt CSIDL_PROFILE:
Auf NT5 Sie selbst haben nicht die gleichen übergeordneten Ordner und "Roaming" wird im Stammverzeichnis des Profils:
Den Benutzer und/oder domain-admin können sich bewegen und/oder leiten diese Ordner, um überall, auf das Stammverzeichnis von einem anderen Laufwerk oder in einer Netzwerkfreigabe.
Die einzige dokumentierte Art, wie ich denken kann, finden die Eltern, ist die Verwendung IKnownFolderManager::GetFolder und rufen Sie dann
IKnownFolder::GetFolderDefinition
und schauenKNOWNFOLDER_DEFINITION.fidParent
(Halten Sie im Verstand, dass es sich nicht um einen Elternteil, IKnownFolderManager::Redirect nimmt einen string als Ziel, also eine umgeleitete Ordner kann überall sein)Wenn Sie möchten, dass bestimmte Dateien unter einem speziellen shell-Ordner sollten Sie vergleichen den Pfad mit so etwas wie PathCommonPrefix oder IKnownFolderManager::FindFolderFromPath.