在 Linux 中我们可以创建相对符号链接。
ln -s targetfile symlink
在Java NIO.2中
Files.createSymbolicLink(symlink, targetfile);
这段代码不能使用相对路径。
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.
使用Files.createSymbolicLink(destination, targetDirectory.relativize(targetfile));创建符号链接。
Files.createSymbolicLink(FileSystems.getDefault().getPath("lnk"), FileSystems.getDefault().getPath("target"))
按预期工作,在当前目录中创建了lnk -> target
的符号链接。 - dhke