c++ - 处理文件名boost::filesystem::stem中带有多个“。”的文件

标签 c++ boost boost-filesystem

如果文件名是“abc.def.xyz”,如何将“.def.xyz”作为扩展名,“abc”作为词干我知道boost::filesystem::stem/extension()认为最右边的“.”是文件名和扩展名之间的分隔符我能把它改成最左边的吗?
相关问题,但寻找答案与最正确的“。
boost filename extension with multiple "."

最佳答案

reference意味着事情正如你所说的那样-扩展总是定义为最右边的点和向前。当然您可以自己解析字符串,但是如果您坚持使用Boost扩展,那么,只需获得stem的扩展+扩展:

path wierdExt = extension(stem(yourpath));
wierdExt += extension(yourpath);

当然,在扩展检索之前,更多的点是对stem的更多调用但也可以考虑一个常规的字符串解析。

关于c++ - 处理文件名boost::filesystem::stem中带有多个“。”的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48315378/

相关文章:

c++ - 类 draw() 方法在直接调用时有效,但在被另一个对象调用时崩溃

C++函数查找 vector 中的最小值+最大值元素

c++ - boost::filesystem::path.parent_path() 和空格

c++ - 树上的多线程

c++ - 我应该将哪个版本的 boost 与 c++ visual-studio-2005 一起使用?

c++ - 为什么这种理论上跨平台的代码不会改变 Windows 上的环境变量?

c++ - 缺少 directory_entry 的比较运算符

c++ - 在 Eclipse IDE 中设置 gcc ( gcc-arm-embedded ) for C/C++ Developers Mars in OS X

C++ 段线相交

c++ - 尝试跨多个进程使用 Boost.Interprocess 消息队列时的断言