目录
最近开发工作中要求返回一个文件全路径中的文件名和文件路径,总结出以下几种实现方法:
获取文件名
方法一:切分后存入数组中
@Test
public void test01() {
String separator = File.separator.replace("\\", "\\\\");
// 使用正则表达式 \\ 或 / 来拆分路径
String absolutePath = "D:\\projects\\tdp-manager\\admin\\jar_package\\test003\\aaaa_12\\cdi-api-1.0.jar";
String[] parts = absolutePath.split(separator);
System.out.println("文件名为:" + parts[parts.length - 1]);// 文件名为:cdi-api-1.0.jar
}
方法二:使用Path
@Test
public void test02() {
String absolutePath = "D:\\projects\\tdp-manager\\admin\\jar_package\\test003\\aaaa_12\\commons-cli-1.4.jar";
Path path = Paths.get(absolutePath);
System.out.println("文件名为:" + path.getFileName());// 文件名为:commons-cli-1.4.jar
}
方法三:使用File
@Test
public void test03() {
String absolutePath = "D:\\projects\\tdp-manager\\admin\\jar_package\\test003\\aaaa_12\\commons-cli-1.4.jar";
File tempFile = new File(absolutePath.trim());
System.out.println("fileName = " + tempFile.getName());
}
方法四:使用索引
@Test
public void test04() {
String absolutePath = "D:\\projects\\tdp-manager\\admin\\jar_package\\test003\\aaaa_12\\commons-cli-1.4.jar";
absolutePath = absolutePath.trim();
absolutePath = absolutePath.substring(absolutePath.lastIndexOf(File.separator) + 1);
// 或者
// absolutePath = absolutePath.substring(absolutePath.lastIndexOf("\\") + 1);
System.out.println(absolutePath);// commons-cli-1.4.jar
}
获取文件路径
方法一:使用索引
@Test
public void test05() {
String absolutePath = "D:\\projects\\tdp-manager\\admin\\jar_package\\test003\\aaaa_12\\commons-cli-1.4.jar";
int lastIndex = absolutePath.lastIndexOf("\\");
if (lastIndex != -1) {
System.out.println(absolutePath.substring(0, lastIndex));
} else {
System.out.println(absolutePath); // No '\\' found, return original input
}
}
方法二:使用Path
@Test
public void test06() {
String absolutePath = "D:\\projects\\tdp-manager\\admin\\jar_package\\test003\\aaaa_12\\commons-cli-1.4.jar";
Path path = Paths.get(absolutePath);
System.out.println("文件路径为:" + path.getParent());// 文件路径为:D:\projects\tdp-manager\admin\jar_package\test003\aaaa_12
}