好吧,首先我不想使用Boost或任何外部库。我只想使用C++标准库。我可以很容易地分裂与给定的分隔符串与我split()
功能:C++ - 分割文件名和文件扩展名
void split(std::string &string, std::vector<std::string> &tokens, const char &delim) {
std::string ea;
std::stringstream stream(string);
while(getline(stream, ea, delim))
tokens.push_back(ea);
}
我这样做是对的文件名。但是有一个问题。有些文件的扩展名为:tar.gz
,tar.bz2
等。还有一些文件名有额外的点。 Some.file.name.tar.gz
。我希望分开Some.file.name
和tar.gz
注意:文件名中的点数不是恒定的。我也试过PathFindExtension
但没有运气。这可能吗?如果是这样,请赐教。谢谢。
编辑:我很抱歉没有指定操作系统。这是Windows。
你想只使用C++标准库,让你尝试操作系统特定的功能`PathFindExtension` ... – 2010-11-30 14:10:21