2013-10-30 49 views
4

我試圖使用路徑和文件將大量文件複製到Java 7中的輸出目錄。這是行不通的:如何將文件複製到Java中的目錄7

Files.copy(Paths.get("/my/file.txt"), Paths.get("/my/output/directory/"); 

它產生一個「目錄不爲空」的錯誤。

是的,我可以編寫代碼來直接命名輸出文件,或使用Guava,但我試圖用最簡單的方法使用新的Java 7 nio類。

+0

你爲什麼不想要寫'Files.copy(Paths.get( 「/我/ file.txt的」 ),Paths.get(「/ my/output/directory/file.txt」);'?這是正確的方法。 –

回答

3

從文檔Java 7

副本(路徑源,路徑目標,CopyOption ...選項)

拷貝文件到目標文件

所以你必須指定目標文件。

我有大量的文件

您可以通過拆分源路徑獲取文件名和附加到目標文件夾。

2

該命令似乎試圖替換目錄本身。嘗試指定文件名的目標目錄

Files.copy(Paths.get("/my/file.txt"), Paths.get("/my/output/directory/file.txt"); 
+0

我可以做到這一點,但我有大量的文件和一個輸出目錄,所以指定目錄更方便,就像你做操作系統文件拷貝一樣 – ccleve

+0

對,用bash很簡單,但這是Java 7 API。 –

+2

爲什麼它更方便?無論如何你都在循環中。多少c你真的需要添加來獲取文件路徑的「名稱」部分,並將其粘貼到目錄中? –

4

最簡單的方法:

Path file = /* path to source file */ 
Path to = /* path to destination directory */ 
Files.copy(file, to.resolve(file.getFileName())); 
相關問題