调用 Files.readSymbolicLink() 方法可以返回链接所指向的目标文件的 Path 对象。这个方法接受一个 Path 类型的参数,这个参数必须是一个链接,否则会抛出 NotLinkException
异常。
调用 Files.isSameFile() 方法可以判断链接和文件是否指向同一文件。
下面的
例子中,链接为 rafael.nadal.6,目标文件是 C:\rafaelnadal\photos\rafa_winner.jpg,随后读取了链接指向的文件位置,并判断了链接是否与文件是否指向同一文件。
class="java">Path link = Filesystems.html" target="_blank">Systems.getDefault().getPath("rafael.nadal.6");
Path target = FileSystems.getDefault().getPath("C:/rafaelnadal/photos", "rafa_winner.jpg");
…
try {
Path linkedpath = Files.readSymbolicLink(link);
System.out.println(linkedpath.toString());
if(Files.isSameFile(link, target)){
System.out.println("Two paths point to the same location");
}
} catch (IOException e) {
System.err.println(e);
}
文章来源:http://www.aptusource.org/2014/04/nio-2-locating-the-target-of-a-link/