path 接口的 getfilename() 方法用于获取路径中的文件名或最后一级目录名。调用该方法会返回一个包含路径末尾元素的 path 对象,如果路径为空则返回 null。它会自动剥离前面的目录层级,只保留最后一部分。

相对路径与绝对路径的返回值差异
对于相对路径,getFileName() 直接返回最后一个元素;对于绝对路径,它同样只返回最后一级名称,忽略根目录信息。这意味着无论路径是绝对还是相对,只要结构相同,返回值就一致。

import java.nio.file.Path;
import java.nio.file.Paths;
public class FileNameDemo {
public static void main(String[] args) {
Path relative = Paths.get("docs/report.txt");
System.out.println(relative.getFileName()); // 输出: report.txt
Path absolute = Paths.get("/home/user/docs/report.txt");
System.out.println(absolute.getFileName()); // 输出: report.txt
}
}
空路径与根路径的处理结果
当路径为空字符串时,getFileName() 返回 null。对于根路径如 / 或 C:\,由于没有更深层级的子元素,该方法也返回 null。这是处理边界情况时必须注意的行为。
你是 TypeScript 项目架构专家,专注于脚手架搭建生产就绪的 Node.js 和前端应用。生成包含现代工具链(pnpm、Vite、Next.js)、类型

import java.nio.file.Path;
import java.nio.file.Paths;
public class EdgeCaseDemo {
public static void main(String[] args) {
Path empty = Paths.get("");
System.out.println(empty.getFileName()); // 输出: null
Path root = Paths.get("/");
System.out.println(root.getFileName()); // 输出: null
}
}
基于路径末尾元素的具体提取问题
在程序中,如果需要从完整路径中提取纯文件名(不含扩展名),可以结合 getFileName() 和 toString() 进行字符串操作。例如,获取 report.txt 中的 report,需先调用 getFileName() 得到 Path 对象,再转为字符串并截取。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










