将相对路径转换为绝对路径

新手上路,请多包涵

我有文件 A 的绝对路径。

我有一个从文件 A 的目录到文件 B 的相对路径。此路径可能并且将使用“..”以任意复杂的方式向上移动目录结构。

例子一:

  • C:\projects\project1\module7\submodule5\fileA

示例 B:

  • ..\..\module3\submodule9\subsubmodule32\fileB
  • ..\submodule5\fileB
  • ..\..\module7\..\module4\submodule1\fileB
  • fileB

如何将两者结合起来以获得文件 B 的最简单的 绝对路径?

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

阅读 806
2 个回答

如果我解决了你的问题,你可以这样做:

 File a = new File("/some/abs/path");
File parentFolder = new File(a.getParent());
File b = new File(parentFolder, "../some/relative/path");
String absolute = b.getCanonicalPath(); // may throw IOException

原文由 Fabian Steeg 发布,翻译遵循 CC BY-SA 2.5 许可协议

String absolutePath = FileSystems.getDefault().getPath(mayBeRelativePath).normalize().toAbsolutePath().toString();

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

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