Tom
Tom

Reputation: 9643

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.

Upvotes: 4

Views: 7887

Answers (1)

sbi
sbi

Reputation: 224069

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.

Upvotes: 7

Related Questions