从路径获取文件名的最简单方法是什么?
string filename = "C:\\MyDirectory\\MyFile.bat"
在这个例子中,我应该得到“MyFile”。没有扩展。
原文由 nidhal 发布,翻译遵循 CC BY-SA 4.0 许可协议
一个非常简单且简短的函数,它返回我制作的不使用依赖项的文件名+路径:
const char* GetFileNameFromPath(const char* _buffer)
{
char c;
int i;
for (i = 0; ;++i) {
c = *((char*)_buffer+i);
if (c == '\\' || c == '/')
return GetFileNameFromPath((char*)_buffer + i + 1);
if (c == '\0')
return _buffer;
}
return "";
}
要仅获取 没有扩展 名的文件名,您可以将 c == '\0'
更改为 c == '.'
。
原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答505 阅读✓ 已解决
_splitpath 应该做你需要的。您当然可以手动操作,但
_splitpath
也可以处理所有特殊情况。编辑:
正如 BillHoag 提到的,建议使用更安全的
_splitpath
版本,在可用时称为 _splitpath_s 。或者如果你想要一些便携的东西,你可以做这样的事情