直接从this Oracle Java教程:

它说了关于Path类的toRealPath方法:


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


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

提前致谢。

最佳答案

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


  当不解析符号链接和之前的名称时[到“ ..”]
  是符号链接,则只有在保证名称的情况下才删除名称
  结果路径将与此路径定位在同一文件。


(javadoc)

从javadoc获得的方法的完整说明以及其他信息:


  返回现有文件的真实路径。的精确定义
  此方法取决于实现,但通常它源自
  该路径,一个绝对路径,与该路径位于同一文件中,
  但具有代表实际名称的名称元素
  目录和文件。例如,在
  文件系统不区分大小写,则名称元素代表
  以实际情况命名。此外,结果路径具有
  多余的名称元素已删除。
  
  如果此路径是相对路径,则首先获取其绝对路径,如
  如果通过调用toAbsolutePath方法。
  
  options数组可用于指示符号链接的方式
  处理。默认情况下,符号链接解析为最终链接
  目标。如果存在选项NOFOLLOW_LINKS,则此方法可以
  无法解析符号链接。一些实现允许特殊名称
  例如“ ..”以引用父目录。当推导实数时
  路径,然后在“ ..”(或等效名称)之前加上非“ ..”名称
  一个实现通常会导致两个名称都被删除。什么时候
  不解析符号链接,并且前面的名称是符号链接
  那么只有在保证生成结果后,才删除名称
  路径将与此路径找到相同的文件。


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

关于java - 方法到RealPath的行为(类java.nio.file.Path),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18046595/

10-14 11:39
查看更多