2017-08-21 91 views
1

很簡單的文件副本,這兩個目錄都存在,獲得如下消息:java.nio.file無法複製文件

代碼 -

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); 

ERROR--抓: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 批次/ 5 46b3d10-0256-4bcd-9d3c-504ca31714d5/20170821-3927/packageManifest.xml 在 groovy_script_3470154301378281065.run(groovy_script_3470154301378281065.groovy:20)

回答

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 
2

我的選擇將是NoSuchFileException正確拋出,所以你應該加倍 - 檢查使用的路徑。在第二路徑有一些形跡可疑的空間:

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