获取临时文件字符串并添加自定义文件夹

问题描述

我是 C++ 的新手,我一直在思考如何在 Windows 上获取用户临时文件夹的字符串,并向其附加一个自定义文件名称

例如"\Users\user\AppData\Local\Temp\NameOfCustomFolder"

我已经试过了:

    std::string szOutput{};
    TCHAR path_buf[MAX_PATH];
    DWORD ret_val = GetTempPath(MAX_PATH,path_buf);
    if (ret_val > MAX_PATH || (ret_val == 0))
    {
        std::cout << "GetTempPath Failed";
    }
    else
    {
        szOutput = path_buf,"NameOfCustomFolder\\file.exe"
    }

    return szOutput;

解决方法

这不会执行您想要的字符串连接

szOutput = path_buf,"NameOfCustomFolder\\file.exe";

宁愿做

szOutput = std::string{path_buf} + "NameOfCustomFolder\\file.exe";
,

如果你可以使用 C++17,我建议std::filesystem::path::append

它将处理路径分隔符,并使跨平台变得容易。