如何在 Java NIO.2 中创建相对符号链接?

How to create relative symlink in Java NIO.2?

在linux中我们可以创建相对符号链接。

 ln -s targetfile symlink

在java NIO.2

Files.createSymbolicLink(symlink, targetfile); 

此代码不适用于相对路径。

Files.createSymbolicLink(目的地,目标目录。相对化(目标文件));

下面是在创建符号链接时给出相对路径的代码,以使其在跨平台环境中可访问。

Path source = Paths.get("D:\A\B\C\D\E\F\G\a.mp4"); // original file's absolute path
Path link = Paths.get("D:\A\B\C\D\E\F\H\I\a.mp4"); // symbolic link's absolute path
Path relativeSrc = link.getParent().relativize(source); // relative path of original file from symbolic link

link.getParent().toFile().mkdirs(); // create the directory hierarchy if any folder is not available 
Files.createSymbolicLink(link, reativeSrc); // create symbolic link.

希望这会有所帮助:)