• C++获得系统路径


    源码:

    1. #include <Shlobj.h>  
    2. #include <stdio.h>  
    3. #include <locale.h>  
    4.   
    5. int main()  
    6. {  
    7.     setlocale(LC_ALL, "chs");  
    8.   
    9.     TCHAR szPath[MAX_PATH];  
    10.   
    11.     int CSIDL[] = {  
    12.         CSIDL_ADMINTOOLS,       CSIDL_APPDATA,  CSIDL_CDBURN_AREA,      CSIDL_COMMON_ADMINTOOLS,    CSIDL_COMMON_APPDATA,  
    13.         CSIDL_COMMON_DESKTOPDIRECTORY,          CSIDL_COMMON_DOCUMENTS, CSIDL_COMMON_FAVORITES,     CSIDL_COMMON_MUSIC,  
    14.         CSIDL_COMMON_PICTURES,  CSIDL_COMMON_PROGRAMS,  CSIDL_COMMON_STARTMENU, CSIDL_COMMON_STARTUP,  
    15.         CSIDL_COMMON_TEMPLATES, CSIDL_COMMON_VIDEO,     CSIDL_COOKIES,          CSIDL_FAVORITES,  
    16.         CSIDL_HISTORY,          CSIDL_INTERNET_CACHE,   CSIDL_LOCAL_APPDATA,    CSIDL_MYDOCUMENTS,  
    17.         CSIDL_MYMUSIC,          CSIDL_MYPICTURES,       CSIDL_MYVIDEO,          CSIDL_PROFILE,      CSIDL_PROGRAM_FILES,  
    18.         CSIDL_PROGRAM_FILES_COMMON,                     CSIDL_PROGRAMS,         CSIDL_RECENT,       CSIDL_SENDTO,  
    19.         CSIDL_STARTMENU,        CSIDL_STARTUP,          CSIDL_SYSTEM,           CSIDL_TEMPLATES,    CSIDL_WINDOWS,  
    20.         0  
    21.     };  
    22.   
    23.     for (int i=0;CSIDL[i];i++) {  
    24.         if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL[i], NULL, SHGFP_TYPE_CURRENT, szPath))) {  
    25.             wprintf(L"%d, %s ", i, szPath);  
    26.         }  
    27.     }  
    28.   
    29.     return 0;  
    30. }  

    在XP上,用VS2010编译通过,假设是win7或者更高版本号,应该用

    1. HRESULT SHGetKnownFolderPath(  
    2.   _In_      REFKNOWNFOLDERID rfid,  
    3.   _In_      DWORD dwFlags,  
    4.   _In_opt_  HANDLE hToken,  
    5.   _Out_     PWSTR *ppszPath  
    6. );  

    结果:

    [plain] view plaincopy
    1. 0, C:Documents and SettingsAdministrator「開始」菜单程序管理工具  
    2. 1, C:Documents and SettingsAdministratorApplication Data  
    3. 2, C:Documents and SettingsAdministratorLocal SettingsApplication DataMicrosoftCD Burning  
    4. 3, C:Documents and SettingsAll Users「開始」菜单程序管理工具  
    5. 4, C:Documents and SettingsAll UsersApplication Data  
    6. 5, C:Documents and SettingsAll Users桌面  
    7. 6, C:Documents and SettingsAll UsersDocuments  
    8. 7, C:Documents and SettingsAll UsersFavorites  
    9. 8, C:Documents and SettingsAll UsersDocumentsMy Music  
    10. 9, C:Documents and SettingsAll UsersDocumentsMy Pictures  
    11. 10, C:Documents and SettingsAll Users「開始」菜单程序  
    12. 11, C:Documents and SettingsAll Users「開始」菜单  
    13. 12, C:Documents and SettingsAll Users「開始」菜单程序启动  
    14. 13, C:Documents and SettingsAll UsersTemplates  
    15. 14, C:Documents and SettingsAll UsersDocumentsMy Videos  
    16. 15, D:My DocumentsCookies  
    17. 16, D:My DocumentsFavorites  
    18. 17, C:Documents and SettingsAdministratorLocal SettingsHistory  
    19. 18, C:Documents and SettingsAdministratorLocal SettingsTemporary Internet Files  
    20. 19, C:Documents and SettingsAdministratorLocal SettingsApplication Data  
    21. 20, D:My Documents  
    22. 21, D:My DocumentsMy Music  
    23. 22, D:My DocumentsMy Pictures  
    24. 23, D:My DocumentsMy Videos  
    25. 24, C:Documents and SettingsAdministrator  
    26. 25, C:Program Files  
    27. 26, C:Program FilesCommon Files  
    28. 27, C:Documents and SettingsAdministrator「開始」菜单程序  
    29. 28, C:Documents and SettingsAdministratorRecent  
    30. 29, C:Documents and SettingsAdministratorSendTo  
    31. 30, C:Documents and SettingsAdministrator「開始」菜单  
    32. 31, C:Documents and SettingsAdministrator「開始」菜单程序启动  
    33. 32, C:WINDOWSsystem32  
    34. 33, C:Documents and SettingsAdministratorTemplates  
    35. 34, C:WINDOWS  

  • 相关阅读:
    课后作业03
    课堂测验02
    构建之法阅读笔记02
    进度条 二
    软件工程个人作业02
    Sprint6
    Sprint5
    Alpha版总结会议
    Beta版总结会议
    Alpha阶段项目Postmortem会议总结
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5328314.html
Copyright © 2020-2023  润新知