如果文件名是" abc.def.xyz",我如何获得" .def.xyz"作为扩展和" abc"作为干。我理解boost::filesystem::stem/extension()
认为最合适的"。"作为文件名和扩展名之间的分隔符。我可以以某种方式将其改为最左边的"。" ?
相关问题,但寻找最合适的答案"。" boost filename extension with multiple "."
答案 0 :(得分:0)
reference暗示事情如你所说 - 扩展总是定义为最右边的点和向前。您当然可以自己解析字符串,但如果您坚持使用Boost扩展,那么,只需获取词干+扩展名的扩展名:
path wierdExt = extension(stem(yourpath));
wierdExt += extension(yourpath);
当然,在扩展检索之前,更多的点是对词干的更多调用。但是也要考虑一个常规的字符串解析。