复制两个空路径时会发生什么,为什么不抛出异常?

时间:2011-07-26 14:28:43

标签: java file path filesystems copy

我真的很想知道这段代码是做什么的:

scala> import java.nio.file._
import java.nio.file._

scala> Files.copy(Paths.get(""), Paths.get(""))
res0: java.nio.file.Path = 

不应抛出NoSuchFileException

阅读JavaDoc显示:

  

默认情况下,如果目标文件已存在或是a,则复制将失败   符号链接,除非源和目标是同一个文件,在   在不复制文件的情况下,该方法完成的情况。

但我不确定这是否是真正的原因,因为Files.copy(Paths.get("a"), Paths.get("a"))按预期失败。

1 个答案:

答案 0 :(得分:5)

您可能想要检查http://download.oracle.com/javase/7/docs/api/java/nio/file/Paths.html当提供空字符串(它生成一个空路径)时,paths.get会执行什么操作;有关空路径的含义的详细信息,请查看http://download.oracle.com/javase/7/docs/api/java/nio/file/Path.html

  

如果路径仅由一个路径组成,则路径被视为空路径   name元素为空。使用空路径访问文件是   相当于访问文件系统的默认目录。

因此,您的代码看起来像是一个有效的空路径,然后认为源和目标是相同的。