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

2022-09-01 00:51:51

我有文件A的绝对路径。

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

示例 A:

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

示例 B:

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

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


答案 1

如果我把你的问题弄对了,你可以做这样的事情:

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

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

推荐