简体   繁体   中英

get %APPDATA% path using c++

I want to get the path to the %APPDATA% folder.

In win 2000 & xp it's in: C:\Documents and Settings\user name\Application Data

In vista & win7 it's in: C:\Users\user name\AppData\Roaming

I know there is the function SHGetSpecialFolderPath but it retrieves a BOOL and I want to get the path as a string.

The third parameter of SHGetSpecialFolderPath() , named lpszPath , is marked as __out .

Something like this should do:

// Beware, brain-compiled code ahead!
wchar_t buffer[MAX_PATH];
BOOL result = SHGetSpecialFolderPath( hWnd
                                    , buffer
                                    , CSIDL_LOCAL_APPDATA
                                    , false );
if(!result) throw "You'll need error handling here!";
std::wcout << buffer;

Note: I haven't done any Win API work in years. Very likely someone comes along shortly pointing out where I blew it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM