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

新手上路,请多包涵

如何从test.java所在的路径名获取 ddd

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

原文由 minil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 672
2 个回答

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

马克的评论是比 lastIndexOf() 更好的解决方案:

 file.getParentFile().getName();

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

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

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

原文由 Dave Newton 发布,翻译遵循 CC BY-SA 3.0 许可协议

从 Java 7 开始,你有了新的 Paths api 。现代和最干净的解决方案是:

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

结果将是:

 C:/aaa/bbb/ccc/ddd

原文由 neves 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题