Java 当我复制两个空路径时会发生什么,为什么';它不会抛出异常吗?
我真的很想知道这段代码的作用是什么:Java 当我复制两个空路径时会发生什么,为什么';它不会抛出异常吗?,java,file,path,filesystems,copy,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 阅读以下文章: 默认情况下,如果目标文件已存在或是一个 符号链接,除非源和目标是同一文件,否则 在这种情况下,方法在不复制文件的情况
scala> import java.nio.file._
import java.nio.file._
scala> Files.copy(Paths.get(""), Paths.get(""))
res0: java.nio.file.Path =
这不应该抛出一个NoSuchFileException
阅读以下文章:
默认情况下,如果目标文件已存在或是一个
符号链接,除非源和目标是同一文件,否则
在这种情况下,方法在不复制文件的情况下完成
但我不确定这是否是真正的原因,因为文件.copy(path.get(“a”)、path.get(“a”))
按预期失败。您可能需要检查path.get在提供空字符串(它生成空路径)时的作用,以及有关空路径含义的详细信息:
如果路径仅由一个路径组成,则该路径被视为空路径
名称为空的元素。使用空路径访问文件是错误的
相当于访问文件系统的默认目录
因此,您的代码似乎获得了一个有效的空路径,然后认为源和目标是相同的。您可能需要检查路径。get在提供空字符串(它生成空路径)时会执行哪些操作,以及有关空路径含义的详细信息:
如果路径仅由一个路径组成,则该路径被视为空路径
名称为空的元素。使用空路径访问文件是错误的
相当于访问文件系统的默认目录
因此,您的代码似乎得到了一个有效的空路径,然后认为源和目标是相同的。问题不是Scala特有的。我只是用它来展示代码和交互。问题不是Scala特有的。我只是用它来显示代码和交互。当它复制一个目录时,它会创建一个空目录,就像链接提到的文档一样。因此,实际上,它在
dest
中创建了一个空目录。不幸的是,我不是一个伟大的java专家。我只是浏览了一下文档,如果它先比较两个拷贝参数,看看它们是否相同,然后再做一些开销大得多的事情,比如查看文件系统,我也不会感到惊讶。我只是想,如果它在dest
中创建了一个空目录,它会返回指向该目录的路径,并且该路径不会为空。当它复制目录时,它会创建一个空目录,就像链接的文档中提到的那样。因此,实际上,它在dest
中创建了一个空目录。不幸的是,我不是一个伟大的java专家。我只是浏览了一下文档,如果它先比较两个拷贝参数,看看它们是否相同,然后再做一些开销大得多的事情,比如查看文件系统,我也不会感到惊讶。我只是认为,如果它在dest
中创建了一个空目录,它将返回指向该目录的路径,并且该路径不会为空。