c++ - 将文件保存在 %temp% 文件夹中?

标签 c++ windows file save temp

我想将文件保存在临时文件夹中,在运行时通过输入“%temp%”可以轻松找到该文件夹​​,但不知道如何从 C++ 导航到它们

我尝试使用像“GetTempPathA”或“GetTempFileNameA()”这样的函数,但它们不返回字符值。出于我的目的,我使用“TResourceStream”中的“SaveToFile”方法并需要 UnicodeString,如何找到这些信息?

最佳答案

不,都不是GetTempPath也不GetTempFileName 返回一个字符值。通常,C 函数永远不会返回字符串。相反,您传入一个字符串缓冲区和该字符串缓冲区的长度,函数用请求的字符串填充该字符串缓冲区。

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

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

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

请注意,您可能不应该显式调用 ANSI 函数(那些带有 A 后缀的函数)。十多年来,Windows 一直完全采用 Unicode。要么使用由 Windows header 定义的宏,它会根据 _UNICODE 是否自动解析为函数的正确版本。已定义,或显式调用 Unicode 版本(带有 W 后缀的版本)。

由于您调用的是 ANSI 版本,因此您得到的是 ANSI 字符串(由 char 值组成),而不是 Unicode 字符串(由 wchar_t 值组成),这大概就是 SaveToFile 的内容您尝试调用的方法需要。

关于c++ - 将文件保存在 %temp% 文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8979793/

相关文章:

c++ - 从 DLL 向 Vista 中另一个进程的窗口发送消息

c++ - 许多子文件夹的 Makefile

c++ - Qt5 : Preventing another instance of the application doesn't work anymore. ..!

java - Windows: "Your computer is low on memory",内存使用率 62%

python - PyQt 将文件名传递给常用函数

java - 访问java中不在构建路径上的属性文件

c++ - 如何在类 .h 文件中使用静态常量来定义数组的长度?

linux - 在 docker exec 命令中使用 '*'

c# - 如何确定我刚安装的 MSI 是否请求 Windows 重新启动?

android - 如何在android的缓存目录中获取文件?