java.nio.file无法复制文件

时间:2017-08-21 14:54:34

标签: java groovy

非常简单的文件复制,两个目录都存在,得到以下消息:

代码 -

  import java.nio.file.Files;
  import java.nio.file.Paths;
  import static java.nio.file.StandardCopyOption.*;

  Files.copy(
      Paths.get("/u/isciw2/reposi1/ISCIW batch/20170821-3927/packageManifest.xml"), 
      Paths.get(" /PXAS61/usr/lpp/ucd/V6.2.1/var/work/ISCIW  batch/546b3d10-0256-4bcd-9d3c-504ca31714d5/20170821-3927/packageManifest.xml"),
      REPLACE_EXISTING);
  

错误 - 抓到:java.nio.file.NoSuchFileException:   /PXAS61/usr/lpp/ucd/V6.2.1/var/work/ISCIW   批次/ 546b3d10-0256-4bcd-9d3c-504ca31714d5 / 20170821-3927 / packageManifest.xml   java.nio.file.NoSuchFileException:   /PXAS61/usr/lpp/ucd/V6.2.1/var/work/ISCIW   批次/ 546b3d10-0256-4bcd-9d3c-504ca31714d5 / 20170821-3927 / packageManifest.xml     在   groovy_script_3470154301378281065.run(groovy_script_3470154301378281065.groovy:20)

2 个答案:

答案 0 :(得分:2)

我的赌注是NoSuchFileException被正确抛出,所以你应该仔细检查使用的路径。在第二条路径中有一些可疑的空间:

 " /PXAS61/usr/lpp/ucd/V6.2.1/var/work/ISCIW  batch/546b3d10-0256-4bcd-9d3c-504ca31714d5/20170821-3927/packageManifest.xml"

答案 1 :(得分:1)

在UNIX上,将路径复制并粘贴到以下命令中:

$ ls "/PXAS61/usr/lpp/ucd/V6.2.1/var/work/ISCIW batch/546b3d10-0256-4bcd-9d3c-504ca31714d5/20170821-3927/packageManifest.xml"

...确保引号和空格与Java中的完全一致。

我希望您收到错误回复,例如:

ls: cannot access /PXAS61/usr/lpp/ucd/V6.2.1/var/work/ISCIW batch/546b3d10-0256-4bcd-9d3c-504ca31714d5/20170821-3927/packageManifest.xml: No such file or directory

...在这种情况下,Java和ls同意:此文件不存在。

现在找到实际文件,并调整ls命令直到它没有错误。一旦它工作,您可以将正确的路径复制/粘贴到Java中。

作为捷径(假设路径的基础是正确的),您可以找到候选正确的路径,例如:

$ find /PXAS61/usr/lpp/ucd -name packageManifest.xml

......甚至,在许多系统上:

$ locate packageManifest.xml