2
在linux中我們可以創建相對的符號鏈接。如何在Java NIO.2中創建相對符號鏈接?
ln -s targetfile symlink
在java中NIO.2
Files.createSymbolicLink(symlink, targetfile);
此代碼不與相對路徑工作。
在linux中我們可以創建相對的符號鏈接。如何在Java NIO.2中創建相對符號鏈接?
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));
什麼是使用絕對路徑或調用Runtime.getRuntime()。EXEC( 「LN -s BLA-嗒嗒」)的問題? – Taras
請詳細說明「不適用於相對路徑」。 'Files.createSymbolicLink(FileSystems.getDefault()。getPath(「lnk」),FileSystems.getDefault()。getPath(「target」))'按預期工作,在當前目錄中創建'lnk - > target'。 – dhke
@Taras正確使用該代碼。但我需要跨平臺支持。 – hurelhuyag