2013-08-25 52 views
2

好了,你都已经是一个巨大的帮助,今天和香港专业教育学院得到了最后一个问题,这将完成我的计划,我希望不会是很难回答。获取用户临时文件夹路径C++

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

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

与是我不明白如何拍摄,并将其保存为一个字符串的链接的唯一问题。

回答

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

变化,如果你不使用Unicode wstringstringwchar_tcharGetTempPathWGetTempPathA

-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