1

直接来自这个oracle java 教程:

它说明了类 Path 的 toRealPath 方法:

如果将 true 传递给此方法并且文件系统支持符号链接,则此方法将解析路径中的任何符号链接。

false传递给构造函数但路径实际上包含符号链接的情况下怎么办?程序在运行时会如何反应?

提前致谢。

4

1 回答 1

0

您可以不传递 NOFOLLOW_LINKS 而不是传递任何内容,因此它不会解析符号链接,只会规范化路径(删除不必要的“..”)并使其成为绝对路径。

当不解析符号链接并且前面的名称 [to the ".."] 是符号链接时,只有当它保证生成的路径将与该路径定位相同的文件时,才会删除这些名称。

(javadoc)

从 javadoc 获得的带有附加信息的方法的完整描述:

返回现有文件的真实路径。此方法的精确定义取决于实现,但通常它派生自此路径,这是一个与此路径定位相同文件的绝对路径,但名称元素表示目录和文件的实际名称。例如,在文件系统上的文件名比较不区分大小写的情况下,名称元素代表实际大小写的名称。此外,生成的路径已删除多余的名称元素。

如果此路径是相对路径,则首先获取其绝对路径,就像调用 toAbsolutePath 方法一样。

选项数组可用于指示如何处理符号链接。默认情况下,符号链接被解析为其最终目标。如果选项 NOFOLLOW_LINKS 存在,则此方法不会解析符号链接。一些实现允许诸如“..”之类的特殊名称来引用父目录。当派生实际路径时,“..”(或等效)前面有一个非“..”名称,则实现通常会导致两个名称都被删除。当不解析符号链接并且前面的名称是符号链接时,只有在保证生成的路径将定位与该路径相同的文件时,才会删除这些名称。

来源:javadoc:java se 8:http ://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html#toRealPath-java.nio.file.LinkOption...-

于 2014-07-05T19:51:53.297 回答