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

问题描述 投票:0回答:2

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

 ln -s targetfile symlink

在java NIO.2中

Files.createSymbolicLink(symlink, targetfile); 

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

java nio
2个回答
8
投票

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

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, relativeSrc); // create symbolic link.

希望这会有所帮助:)


2
投票

Files.createSymbolicLink(destination, targetDirectory.relativize(targetfile));

© www.soinside.com 2019 - 2024. All rights reserved.