Как получить путь к системной папке(C:Windows C:Program файлы) в Windows с использованием C++? [закрытый]
я программирую на c++ MFC,
Я хочу получить "C:windows ""c:program путь к папке" файлы".
иногда пользователь может настроить windows в другой папке, например c:windows0 - ...
Есть ли какой-либо API, чтобы получить абсолютный путь к пути windows и program files?
большое спасибо!
5 ответов
использование Win32 API>
для папки Windows:
TCHAR windir[MAX_PATH];
GetWindowsDirectory(windir, MAX_PATH);
для программу файлов:
TCHAR pf[MAX_PATH];
SHGetSpecialFolderPath(
0,
pf,
CSIDL_PROGRAM_FILES,
FALSE );
здесь MAX_PATH
происходит из заголовков Windows и гарантирует, что буфер достаточно длинный для самого длинного (не-UNC) пути.
внимание:SHGetSpecialFolderPath
можно использовать для получения другой" специальной " папки, включая папку Windows, просто заменив третий параметр на любой из этого список.
-
GetWindowsDirectory
: http://msdn.microsoft.com/en-us/library/ms724454 (VS.85).aspx -
SHGetSpecialFolderPath
: http://msdn.microsoft.com/en-us/library/bb762204 (VS.85).aspx
большинство из них поступают из SHGetFolderPath, но GetSystemDirectory () возвращает абсолютное расположение C:\Windows\System32 - ... Не используйте GetWindowsDirectory(). Он больше не делает то, что ты хочешь.
На Vista+, SHGetKnownFolderPath
заменяет SHGetFolderPath
и SHGetSpecialFolderPath
, хотя вы можете продолжать использовать старые функции, если вам нужна обратная совместимость со старыми версиями Windows.