for (TPathInfoList::iterator iter = pathInfoList.begin(); iter != pathInfoList.end(); ++iter)
{
const TPathInfoList::value_type& path = *iter;
EResult resultCode = MakeMSA(path, &msg);
fs::path parentPath = path.parent_path();
std::string shortPath = parentPath.parent_path().filename() + "\\" + parentPath.filename() + "\\" + path.filename();;
tm t;
time_t timer;
timer = time(NULL);
localtime_s(&t, &timer);
printf("%04d/%02d/%02d %02d:%02d:%02d [%s] %s\n",
t.tm_year + 1900, t.tm_mon + 1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec,
msg.c_str(), shortPath.c_str());
}
我尝试提升1.60并且我坚持这个错误。
我做错了什么?
http://prntscr.com/a2yync
答案 0 :(得分:0)
错误消息屏幕截图显示parentPath.parent_path().filename()
不是字符串而是filesystem::path
。
由于shortPath
是string
,我建议parentPath.parent_path().filename().string
:
std::string shortPath = parentPath.parent_path().filename().string()
+ "\\" + parentPath.filename().string()
+ "\\" + path.filename().string();
或使shortPath
成为path
并使用+=
运算符连接