C++ C++;如何使用字符串中的文件路径创建时间戳目录?

C++ C++;如何使用字符串中的文件路径创建时间戳目录?,c++,directory,lpcwstr,C++,Directory,Lpcwstr,我试图建立一个程序,可以创建一个新的目录,每次它是用来填充数据。我希望文件夹的名称是它创建时的时间戳。我已经编写了一个函数,它创建时间戳并将其作为字符串返回 string timestamp() { //create a timecode specific folder // current date/time based on current system time_t now = time(0); struct tm timeinfo; localtime_s(&timeinfo

我试图建立一个程序,可以创建一个新的目录,每次它是用来填充数据。我希望文件夹的名称是它创建时的时间戳。我已经编写了一个函数,它创建时间戳并将其作为字符串返回

string timestamp() {

//create a timecode specific folder
// current date/time based on current system
time_t now = time(0);

struct tm timeinfo;
localtime_s(&timeinfo, &now);

// print various components of tm structure.
cout << "Year: " << 1900 + timeinfo.tm_year << endl;
int Y = 1900 + timeinfo.tm_year;
cout << "Month: " << 1 + timeinfo.tm_mon << endl;
int M = 1 + timeinfo.tm_mon;
cout << "Day: " << timeinfo.tm_mday << endl;
int D = timeinfo.tm_mday;
cout << "Time: " << 1 + timeinfo.tm_hour << ":";
int H = timeinfo.tm_hour;
cout << 1 + timeinfo.tm_min << ":";
int Mi = timeinfo.tm_min;
cout << 1 + timeinfo.tm_sec << endl;
int S = 1 + timeinfo.tm_sec;

string timestampStr;
stringstream convD, convM, convY, convH, convMi, convS;
convD << D;
convM << M;
convY << Y;
convH << H;
convMi << Mi;
convS << S;
cout << "Timestamp:" << endl;
timestampStr = convD.str() + '.' + convM.str() + '.' + convY.str() + '-' + convH.str() + ':' + convMi.str() + ':' + convS.str();
cout << timestampStr << endl;

return timestampStr;
}
当我有一个类似于字符串中保存的文件路径但为LPCWSTR格式时,创建一个目录。所以我的问题是

  • 如何将字符串转换为LPCWSTR格式以在CreateDirectory中使用

  • 有没有别的方法让我错过了


由于文件夹路径字符串是基于
char
的字符串,只需直接使用
CreateDirectoryA()
,而不是使用基于
TCHAR
CreateDirectoryW()
(它显然在项目中映射到
CreateDirectoryW()
),例如:


啊,谢谢你!这起作用了。问题的另一个方面是,我的时间戳中包含了冒号,这些冒号不被接受。我只是把它们换成句号,文件夹开始出现。好消息
CreateDirectory(direc, NULL);
string direc = "C:\\Users\\Daniel\\Documents\\VS17\\" + timestamp(); 
CreateDirectoryA(direc.c_str(), NULL);