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.
GetWindowsDirectory
: http://msdn.microsoft.com/en-us/library/ms724454(VS.85).aspxSHGetSpecialFolderPath
: http://msdn.microsoft.com/en-us/library/bb762204(VS.85).aspx
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.