QString有一些路径:
QString path = "C:/bla/blah/x/y/file.xls";
Run Code Online (Sandbox Code Playgroud)
我认为可能获得最后一次补偿/将是一个良好的开端.然后我可以使用right方法(没有双关语)来获取该角色之后的所有内容:
path = path.right(path.lastIndexOf("/"));
Run Code Online (Sandbox Code Playgroud)
或者以更兼容的方式:
path = path.right(std::max(path.lastIndexOf("\\"), path.lastIndexOf("/")));
Run Code Online (Sandbox Code Playgroud)
两者都有相同的坏结果:
ah/x/y/file.xls
Run Code Online (Sandbox Code Playgroud)
这有什么不对?很明显,这条道路很快就被削减了,但它甚至更奇怪,它根本就没有削减/.
Ily*_*lya 11
QString您想要的方法mid不是right(right从字符串末尾开始计算):
path = path.mid(path.lastIndexOf("/"));
Run Code Online (Sandbox Code Playgroud)
mid 有第二个参数,但当省略它时,你得到字符串的最右边部分.
而对于更清洁/更通用的代码:
QFileInfo fi("C:/bla/blah/x/y/file.xls");
QString fileName = fi.fileName();
Run Code Online (Sandbox Code Playgroud)
NB QFileInfo不会在不需要时查询文件系统,而且不需要,因为所有信息都在字符串中.
| 归档时间: |
|
| 查看次数: |
7298 次 |
| 最近记录: |