方法toRealPath的行为(类java.nio.file.Path)

时间:2013-08-04 19:12:30

标签: java path nio

直接来自this oracle java教程:

它讲述了类Path的方法toRealPath:

  

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

false传递给构造函数但路径实际包含symbolik链接的情况下是什么? 程序如何在运行时做出反应?

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

  

当不解析符号链接和前面的名称[到“..”]时   是一个符号链接,然后只有保证名称被删除   结果路径将找到与此路径相同的文件。

(Javadoc中)

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

  

返回现有文件的实际路径。精确定义   此方法依赖于实现,但通常源自   此路径是一个绝对路径,它定位与此路径相同的文件,   但是名称元素代表了实际的名称   目录和文件。例如,文件名比较a   文件系统不区分大小写,然后名称元素表示   在实际情况下的名称。此外,生成的路径具有   删除了冗余名称元素。

     

如果此路径是相对的,则首先获得其绝对路径,如   如果通过调用toAbsolutePath方法。

     

options数组可用于指示符号链接的方式   处理。默认情况下,符号链接将解析为最终   目标。如果存在选项NOFOLLOW_LINKS,则此方法可以   不解决符号链接。一些实现允许特殊名称   例如“..”来指代父目录。在推导出真实的时候   路径,然后“..”(或等效的)前面有非“..”名称   实现通常会导致两个名称都被删除。什么时候   不解析符号链接,前面的名称是符号链接   然后只有在保证结果的情况下才删除名称   path将找到与此路径相同的文件。

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