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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

如何获得ddd来自Test.java所在的路径名。

File file = new File("C:/aaa/bbb/ccc/ddd/test.java");
提问于
用户回答回答于

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

以下更好的解决方案:

file.getParentFile().getName();

这些解决方案仅在文件具有父文件(例如,通过采用父文件的文件构造器之一创建)时才有效File。何时getParentFile()为空,需要使用lastIndexOf,或者使用Apache Commons'之FileNameUtils.getFullPath()类的东西:

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

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

用户回答回答于

我不认为有什么神奇的方法可以直接得到这个。但是,这应该是可以的:

File f = new File("C:/aaa/bbb/ccc/ddd/test.java");
String path = f.getParent();
System.out.println(path.substring(path.lastIndexOf("\\")+1,path.length()));     

f.getParent()可能为空,所以你应该检查它。

扫码关注云+社区