How To Get System Folder Path(C:\Windows C:\Program Files) in Windows using C++? How To Get System Folder Path(C:\Windows C:\Program Files) in Windows using C++? windows windows

How To Get System Folder Path(C:\Windows C:\Program Files) in Windows using C++?


Using Win32 API>

For the Windows folder:

TCHAR windir[MAX_PATH];GetWindowsDirectory(windir, MAX_PATH);

For program files:

TCHAR pf[MAX_PATH];SHGetSpecialFolderPath(    0,    pf,     CSIDL_PROGRAM_FILES,     FALSE ); 

Where MAX_PATH comes from the Windows headers and will guarantee the buffer is long enough for the longest (non-UNC) path.

Also, note that SHGetSpecialFolderPath can be used to retrieve other "special" folder including the Windows folder just by replacing the third parameter to any from this list.


On Vista+, SHGetKnownFolderPath is the replacement for SHGetFolderPath and SHGetSpecialFolderPath, although you can continue to use the older functions if you need backward compatibility to older versions of Windows.