从路径提取文件名:Delphi ExtractFileName的C++等效实现(C++ Builder 10.4)
兼容Unicode的路径文件名提取方案(Embarcadero C++ Builder 10.4)
直接调用VCL/RTL内置Unicode函数
你的项目基于C++ Builder 10.4,可以直接使用RTL提供的ExtractFileName函数,它和Delphi的同名函数行为完全一致,原生支持Unicode,无需转换为char const*:#include <System.SysUtils.hpp> UnicodeString filePath = L"C:\\测试文件夹\\example.txt"; UnicodeString fileName = ExtractFileName(filePath); // 输出结果为 "example.txt"该函数属于C++ Builder原生RTL,无需引入任何第三方库,直接适配你已有20年历史的项目,不用升级C++17。
手动实现轻量版提取逻辑
如果需要脱离VCL依赖(或自定义逻辑),可以基于UnicodeString自行实现,核心是定位最后一个路径分隔符并截取后续内容:UnicodeString MyExtractFileName(const UnicodeString& path) { int lastDelimPos = path.LastDelimiter("\\/"); return (lastDelimPos == -1) ? path : path.SubString(lastDelimPos + 1); } // 使用示例 UnicodeString filePath = L"/home/user/文档/测试文件.pdf"; UnicodeString fileName = MyExtractFileName(filePath); // 输出结果为 "测试文件.pdf"这个实现仅依赖C++ Builder的
UnicodeString类,完全兼容现有项目的代码结构。
内容的提问来源于stack exchange,提问作者BarryK
相关产品推荐
相关产品推荐

