get file name

本文探讨了Qt在游戏开发领域的应用,详细介绍了Qt在游戏引擎、图形渲染、UI设计等方面的优势,以及如何利用Qt进行游戏项目的高效开发。
QFileInfo fileInfo(QFile(m_strFilePath).fileName());
    ui.titleBar->setText(fileInfo.fileName());
<think>我们有一个URL字符串:https://test-download.cloud.com/firmware/up_boot-signed_112.bin 使用url.getFile()返回的是URL路径部分,即:/firmware/up_boot-signed_112.bin 现在要求去掉前面的路径部分,只保留文件名,即去掉"/firmware/" 我们可以使用字符串处理,比如找到最后一个'/'之后的部分。 修改代码:在获取到fileName之后,对字符串进行处理,去掉路径部分。 例如,我们可以使用: fileName = fileName.substring(fileName.lastIndexOf('/') + 1); 注意:如果字符串中没有'/',lastIndexOf返回-1,那么+1就是0,这样会返回整个字符串。这符合要求,因为没有路径就直接是文件名。 修改后的代码: 但是需要注意的是,原URL后面可能带查询参数,但题目中的URL没有,所以暂时不考虑。不过为了健壮性,我们也可以考虑使用File类来获取文件名部分,但这里要求简单,直接字符串处理即可。 修改后的main方法如下: </think>要修改代码以仅提取文件名并移除 `/firmware/` 前缀,您可以使用 Java 的 `String` 处理方法。以下是优化后的代码: ```java public static void main(String[] args) { String fwUrl = "https://test-download.cloud.com/firmware/up_boot-signed_112.bin"; try { URL url = new URL(fwUrl); // 获取完整路径后删除"/firmware/"前缀 String fileName = url.getFile().replaceFirst("^/firmware/", ""); System.out.println(fileName); } catch (IOException e) { System.out.println("get file name failed " + e.getMessage()); } } ``` ### 关键修改说明: 1. **核心逻辑** `url.getFile().replaceFirst("^/firmware/", "")`: - `url.getFile()` 获取路径部分(如 `/firmware/up_boot-signed_112.bin`) - `replaceFirst("^/firmware/", "")` 使用正则表达式移除开头的 `/firmware/` - `^` 确保只匹配路径开头的字符串 2. **正则表达式优势** - 精确匹配路径开头,避免误删其他位置的 `/firmware/` - 自动处理不同文件名的动态变化(如 `up_boot-signed_1749004606790.bin`) 3. **输出结果** 对于示例 URL,将正确输出: `up_boot-signed_112.bin` ### 替代方案(如需要更灵活处理): ```java // 方法1:使用lastIndexOf获取最后'/'后的子串 String fullPath = url.getFile(); String fileName = fullPath.substring(fullPath.lastIndexOf('/') + 1); // 方法2:使用Paths类(需导入java.nio.file.Paths) String fileName = Paths.get(url.getPath()).getFileName().toString(); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值