获取用户临时文件夹路径c ++

时间:2013-08-25 02:51:19

标签: c++ string directory temp

好的,今天你们都得到了巨大的帮助,我最后一个问题将完成我的计划,我希望不会很难回答。

我想要做的是获取用户临时文件夹路径并将其保存到std :: string。

我能够找到此链接:http://msdn.microsoft.com/en-us/library/aa364992%28VS.85%29.aspx

链接的唯一问题是我不明白如何将其保存为字符串。

2 个答案:

答案 0 :(得分:6)

std::wstring strTempPath;
wchar_t wchPath[MAX_PATH];
if (GetTempPathW(MAX_PATH, wchPath))
    strTempPath = wchPath;

如果您不使用Unicode,请将wstring更改为string,将wchar_t更改为char,将GetTempPathW更改为GetTempPathA

答案 1 :(得分:-1)

此函数似乎使用C样式字符串。但是,您可以将其转换为C ++字符串。

#define MAX_LENGTH 256 // a custom maximum length, 255 characters seems enough

#include <cstdlib> // for malloc and free (optional)
#include <string>

using namespace std;

// other code

char *buffer = malloc(MAX_LENGTH);
string temp_dir;

if (GetTempPath(MAX_LENGTH, buffer) != 0) temp_dir = string(buffer);
else {/* GetTempPath returns 0 on error */}

free(buffer); // always free memory used for the C-Style String

// other code

如果您觉得更容易,还可以使用new[]delete[]分配和释放内存!你也可以使用静态内存分配!

我希望这有助于......:D