[英]Java & symbolic links in windows
我一直在玩java.nio.file.Files
並偶然發現了一個奇怪的問題。 我有一個符號鏈接,但Files.isSymbolicLink()
和符號鏈接屬性Files.readAttributes()
顯示不同的結果。
這是我創建鏈接的方式:
D:\DEV\test>mklink /D link1 components
symbolic link created for link1 <<===>> components
相關的java代碼:
Path symLinkDirectory = Paths.get("D:\\DEV\\test\\link1");
DosFileAttributes dosFileAttributes = Files.readAttributes(symLinkDirectory, DosFileAttributes.class);
System.out.println(String.format(
"Files.isSymbolicLink(): %b, dosFileAttributes.isSymbolicLink(): %b",
Files.isSymbolicLink(symLinkDirectory), dosFileAttributes.isSymbolicLink()));
給我這個輸出:
Files.isSymbolicLink():true,dosFileAttributes.isSymbolicLink():false
誰能告訴我為什么屬性報告文件不是符號鏈接? 我錯過了什么嗎? 這也發生在unix上嗎?
您需要將LinkOption.NOFOLLOW_LINKS
添加到LinkOption.NOFOLLOW_LINKS
的調用中,以獲取鏈接本身的屬性而不是鏈接目標。
DosFileAttributes dosFileAttributes = Files.readAttributes(symLinkDirectory,
DosFileAttributes.class, LinkOption.NOFOLLOW_LINKS);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.