如何仅获取特定文件的父目录名称

2022-08-31 08:14:42

如何从测试.java所在的路径名获取。ddd

File file = new File("C:/aaa/bbb/ccc/ddd/test.java");

答案 1

使用 FilegetParentFile() 方法并仅检索直接父目录。String.lastIndexOf()

Mark的评论是一个比以下更好的解决方案:lastIndexOf()

file.getParentFile().getName();

这些解决方案仅在文件具有父文件(例如,通过采用父文件的文件构造函数之一创建)时才有效。当 为 null 时,您需要求助于使用 ,或者使用类似 Apache Commons 的 FileNameUtils.getFullPath() 的东西:FilegetParentFile()lastIndexOf

FilenameUtils.getFullPathNoEndSeparator(file.getAbsolutePath());
=> C:/aaa/bbb/ccc/ddd

有几种变体可以保留/删除前缀和尾随分隔符。您可以使用同一类从结果中获取名称,使用 等。FilenameUtilslastIndexOf


答案 2

从Java 7开始,您就有了新的Path api。现代和最清洁的解决方案是:

Paths.get("C:/aaa/bbb/ccc/ddd/test.java").getParent().getFileName();

结果将是:

C:/aaa/bbb/ccc/ddd

推荐