3种Java从文件路径中获取文件名的方法

本文介绍了一种在Java中从完整文件路径中提取文件名的方法。通过三种不同的方式实现,包括使用File类、String类的lastIndexOf方法以及split方法配合正则表达式。这些方法简单实用,适用于多种文件路径格式。

package test; 
 
import java.io.File; 
 
public class FileName { 
 
    /**
     * @param args
     */ 
    public static void main(String[] args) { 
//      举例: 
        String fName =" G:\\Java_Source\\navigation_tigra_menu\\demo1\\img\\lev1_arrow.gif "; 
 
//      方法一: 
 
        File tempFile =new File( fName.trim()); 
 
        String fileName = tempFile.getName(); 
         
        System.out.println("fileName = " + fileName); 
 
//      方法二: 
 
        String fName = fName.trim(); 
 
        String fileName = fName.substring(fName.lastIndexOf("/")+1); 
        //或者 
        String fileName = fName.substring(fName.lastIndexOf("\\")+1); 
         
        System.out.println("fileName = " + fileName); 
 
//      方法三: 
 
        String fName = fName.trim(); 
 
        String temp[] = fName.split("\\\\"); /**split里面必须是正则表达式,"\\"的作用是对字符串转义*/ 
 
        String fileName = temp[temp.length-1]; 
         
        System.out.println("fileName = " + fileName); 
 
    } 
 

来源:http://rogerfederer.iteye.com/blog/1039666

 

Java 中,有多种方法可以从文件路径获取文件名,以下为你详细介绍: ### 方法一:使用 `File` 类的 `getName()` 方法方法可直接获取包含扩展名的文件名。示例代码如下: ```java import java.io.File; public class GetFileName { public static void main(String[] args) { String filePath = "D:\\manage\\uploadFile\\2023-06-28283\\初测.xlsx"; File file = new File(filePath); String fileName = file.getName(); System.out.println(fileName); } } ``` ### 方法二:使用 `Path` 类的 `getFileName()` 方法 `Path` 类是 Java NIO 中的一部分,使用 `getFileName()` 方法可以获取文件路径中的文件名。示例代码如下: ```java import java.nio.file.Path; import java.nio.file.Paths; public class GetFileNameWithPath { public static void main(String[] args) { String filePath = "D:\\manage\\uploadFile\\2023-06-28283\\初测.xlsx"; Path path = Paths.get(filePath); Path fileNamePath = path.getFileName(); String fileName = fileNamePath.toString(); System.out.println(fileName); } } ``` ### 方法三:使用 `String` 的 `substring()` 方法 通过查找路径中最后一个路径分隔符的位置,然后截取分隔符之后的部分作为文件名,可获取包含扩展名的文件名。示例代码如下: ```java public class GetFileNameBySubstring { public static void main(String[] args) { String filePath = "D:\\manage\\uploadFile\\2023-06-28283\\初测.xlsx"; String fileName = filePath.substring(filePath.lastIndexOf("\\") + 1); System.out.println(fileName); } } ``` ### 方法四:使用 `split()` 方法 将文件路径路径分隔符进行分割,取分割后的最后一个元素作为文件名。示例代码如下: ```java public class GetFileNameBySplit { public static void main(String[] args) { String filePath = "D:\\manage\\uploadFile\\2023-06-28283\\初测.xlsx"; String[] parts = filePath.split("\\\\"); String fileName = parts[parts.length - 1]; System.out.println(fileName); } } ``` ### 方法五:使用正则表达式 使用正则表达式去除文件路径部分,只保留文件名。示例代码如下: ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public class GetFileNameByRegex { public static void main(String[] args) { String filePath = "D:\\manage\\uploadFile\\2023-06-28283\\初测.xlsx"; Pattern pattern = Pattern.compile("[^\\\\/]+$"); Matcher matcher = pattern.matcher(filePath); if (matcher.find()) { String fileName = matcher.group(); System.out.println(fileName); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值