1. 程式人生 > >c++獲取Windows“我的文件”路徑

c++獲取Windows“我的文件”路徑

https://stackoverflow.com/questions/2414828/get-path-to-my-documents

#include <windows.h>
#include <iostream>
#include <shlobj.h>

#pragma comment(lib, "shell32.lib")

int main() { 
    CHAR my_documents[MAX_PATH];
    HRESULT result = SHGetFolderPathA(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, my_documents);

    if
(result != S_OK) std::cout << "Error: " << result << "\n"; else std::cout << "Path: " << my_documents << "\n"; return 0; }
  1. 之前用網上的程式碼最後得到總是一個十六進位制的數字。。因為我的環境支援Unicode,一些Windows介面預設是寬字元型別的,比如 SHGetFolderPath 預設是 SHGetFolderPathW,而我這需要ascii,所以應該用 SHGetFolderPathA。
  2. CSIDL_PERSONAL 表示“我的文件”,你還可以換其他的引數來獲取Windows下的特殊目錄。