java - 如何在 Java NIO.2 中创建相对符号链接(symbolic link)?

标签 java nio

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

 ln -s targetfile symlink

在 java NIO.2 中

Files.createSymbolicLink(symlink, targetfile); 

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

最佳答案

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

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.

希望这会有所帮助:)

关于java - 如何在 Java NIO.2 中创建相对符号链接(symbolic link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32625105/

相关文章:

Java正则表达式性能问题

java - 当没有传入连接时 SelectionKey.isAcceptable() 返回 "true"

java - kafka.consumer.SimpleConsumer : Reconnect due to socket error: java. nio.channels.ClosedChannelException 异常

java - 关闭非阻塞套接字 channel

每个连接模型的 Java 线程与 NIO

java - 空虚是什么意思?

java - Android,不确定我应该存储到内部存储还是外部存储

java - 我该如何修复 'android.os.NetworkOnMainThreadException' ?

java - 读取 .pem 文件时出错?

Java非阻塞套接字写入