将文件保存在%temp%文件夹中?

Iva*_*cic 0 c++ windows file save temp

我想将文件保存在临时文件夹中,这可以通过放置"%temp%"在运行时键入时很容易找到,但不知道如何从c ++ 导航到它们.

我尝试使用像"GetTempPathA"或"GetTempFileNameA()"这样的函数,但它们不返回char值.为了我的目的,我使用"TResourceStream"中的"SaveToFile"方法并需要UnicodeString,如何查找这些信息?

Cod*_*ray 5

不,既不GetTempPath也不GetTempFileName 返回 char值.通常,C函数不会返回字符串.相反,您传入一个字符串缓冲区和该字符串缓冲区的长度,并且该函数使用请求的字符串填充字符串缓冲区.

例如,要调用GetTempPath,您将编写以下代码:

TCHAR szTempPathBuffer[MAX_PATH];
GetTempPath(MAX_PATH,            // length of the buffer
            szTempPathBuffer);   // the buffer to fill
Run Code Online (Sandbox Code Playgroud)

szTempPathBuffer 将包含临时目录的路径.

请注意,您可能不应该显式调用ANSI函数(带有A后缀的函数).十多年来,Windows已经完全使用Unicode了.使用Windows标头定义的宏,根据是否_UNICODE定义,自动解析为函数的正确版本,或显式调用Unicode版本(带有W后缀的版本).

由于您正在调用ANSI版本,因此您将获得ANSI字符串(由char值组成),而不是Unicode字符串(由wchar_t值组成),这可能是SaveToFile您尝试调用的方法所期望的.