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

时间:2012-01-23 22:52:35

标签: c++ windows file save temp

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

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

1 个答案:

答案 0 :(得分:5)

不,GetTempPathGetTempFileName 都不会返回一个字符值。通常,C函数不会返回字符串。相反,你传入一个字符串缓冲区和该字符串缓冲区的长度,函数用请求的字符串填充字符串缓冲区。

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

TCHAR szTempPathBuffer[MAX_PATH];
GetTempPath(MAX_PATH,            // length of the buffer
            szTempPathBuffer);   // the buffer to fill

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

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

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