roger 发表于 2023-7-3 15:50:25

如何使用 C++ 打开 %appdata% 中的文件夹?

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

#include <filesystem>
#include <iostream>

int main(void)
{
    std::filesystem::path path;
    PWSTR path_tmp;

    /* Attempt to get user's AppData folder
   *
   * Microsoft Docs:
   * https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath
   * https://learn.microsoft.com/en-us/windows/win32/shell/knownfolderid
   */
    auto get_folder_path_ret = SHGetKnownFolderPath(FOLDERID_RoamingAppData, 0, nullptr, &path_tmp);

    /* Error check */
    if (get_folder_path_ret != S_OK) {
      CoTaskMemFree(path_tmp);
      return 1;
    }

    /* Convert the Windows path type to a C++ path */
    path = path_tmp;

    /* Free memory :) */
    CoTaskMemFree(path_tmp);

    std::cout << path << std::endl;

    return 0;
}



TCHAR appdata = {0};
    SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, appdata);
https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderpatha

maskbank 发表于 2024-3-26 08:50:24

本站不研究无任何技术支持
页: [1]
查看完整版本: 如何使用 C++ 打开 %appdata% 中的文件夹?