做WIN下面的开发,不可避免要用到一些系统路径,在开发 FreeEIM 时,用到的一些代码,比较完整的 WINDOWS 系统路径获取方法。
[cpp] view
plain copy
#include
#include
#include
int main()
{
setlocale(LC_ALL, "chs");
TCHAR szPath[MAX_PATH];
int CSIDL[] = {
CSIDL_ADMINTOOLS, CSIDL_APPDATA, CSIDL_CDBURN_AREA, CSIDL_COMMON_ADMINTOOLS, CSIDL_COMMON_APPDATA,
CSIDL_COMMON_DESKTOPDIRECTORY, CSIDL_COMMON_DOCUMENTS, CSIDL_COMMON_FAVORITES, CSIDL_COMMON_MUSIC,
CSIDL_COMMON_PICTURES, CSIDL_COMMON_PROGRAMS, CSIDL_COMMON_STARTMENU, CSIDL_COMMON_STARTUP,
CSIDL_COMMON_TEMPLATES, CSIDL_COMMON_VIDEO, CSIDL_COOKIES, CSIDL_FAVORITES,
CSIDL_HISTORY, CSIDL_INTERNET_CACHE, CSIDL_LOCAL_APPDATA, CSIDL_MYDOCUMENTS,
CSIDL_MYMUSIC, CSIDL_MYPICTURES, CSIDL_MYVIDEO, CSIDL_PROFILE, CSIDL_PROGRAM_FILES,
CSIDL_PROGRAM_FILES_COMMON, CSIDL_PROGRAMS, CSIDL_RECENT, CSIDL_SENDTO,
CSIDL_STARTMENU, CSIDL_STARTUP, CSIDL_SYSTEM, CSIDL_TEMPLATES, CSIDL_WINDOWS,
0
};
for (int i=0;CSIDL[i];i++) {
if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL[i], NULL, SHGFP_TYPE_CURRENT, szPath))) {
wprintf(L"%d, %sn", i, szPath);
}
}
return 0;
}
在XP上,用VS2010编译通过,如果是win7或者更高版本,应该用
[cpp] view
plain copy
HRESULT SHGetKnownFolderPath(
_In_ REFKNOWNFOLDERID rfid,
_In_ DWORD dwFlags,
_In_opt_ HANDLE hToken,
_Out_ PWSTR *ppszPath
);
以下是编译输出。
[cpp] view
plain copy
0, C:Documents and SettingsAdministrator「开始」菜单程序管理工具
1, C:Documents and SettingsAdministratorApplication Data
2, C:Documents and SettingsAdministratorLocal SettingsApplication DataMicrosoftCD Burning
3, C:Documents and SettingsAll Users「开始」菜单程序管理工具
4, C:Documents and SettingsAll UsersApplication Data
5, C:Documents and SettingsAll Users桌面
6, C:Documents and SettingsAll UsersDocuments
7, C:Documents and SettingsAll UsersFavorites
8, C:Documents and SettingsAll UsersDocumentsMy Music
9, C:Documents and SettingsAll UsersDocumentsMy Pictures
10, C:Documents and SettingsAll Users「开始」菜单程序
11, C:Documents and SettingsAll Users「开始」菜单
12, C:Documents and SettingsAll Users「开始」菜单程序启动
13, C:Documents and SettingsAll UsersTemplates
14, C:Documents and SettingsAll UsersDocumentsMy Videos
15, D:My DocumentsCookies
16, D:My DocumentsFavorites
17, C:Documents and SettingsAdministratorLocal SettingsHistory
18, C:Documents and SettingsAdministratorLocal SettingsTemporary Internet Files
19, C:Documents and SettingsAdministratorLocal SettingsApplication Data
20, D:My Documents
21, D:My DocumentsMy Music
22, D:My DocumentsMy Pictures
23, D:My DocumentsMy Videos
24, C:Documents and SettingsAdministrator
25, C:Program Files
26, C:Program FilesCommon Files
27, C:Documents and SettingsAdministrator「开始」菜单程序
28, C:Documents and SettingsAdministratorRecent
29, C:Documents and SettingsAdministratorSendTo
30, C:Documents and SettingsAdministrator「开始」菜单
31, C:Documents and SettingsAdministrator「开始」菜单程序启动
32, C:WINDOWSsystem32
33, C:Documents and SettingsAdministratorTemplates
34, C:WINDOWS
原文链接:http://blog.csdn.net/mynote/article/details/39026747