2015-05-26 96 views
1

如何使用java將文件從一個文件夾複製到另一個文件夾?我曾嘗試使用如何使用Java將文件從一個文件夾複製到另一個文件夾?

org.apache.commons.io.FileUtils.copyFileToDirectory(pasteItem, destinationPath); 

如果目標文件夾不包含具有相同名稱的文件,則可以使用此功能。如果我嘗試將文件粘貼到文件夾中,它會引發IOException。但是,有什麼辦法可以解決這個問題?可能是我想只粘貼文件名稱自動更名爲pasteItem(1)或類似的東西。請建議。

實際上,如果具有相同名稱的文件已存在,我將爲該文件取得新名稱。我無法確定如何複製文件,然後重命名。如果我先重命名然後複製,我會丟失原始文件。如果我嘗試先複製文件,那麼它會發出異常,說明具有相同名稱的文件已存在!

+1

[複製文件或目錄(https://docs.oracle.com/javase/tutorial/essential/io/copy.html) – MadProgrammer

+0

可以使用'替換目標Files.copy(src,dst,StandardCopyOption.REPLACE_EXISTING);' –

+0

@KennethClark替換文件不是我要找的。我需要複製並保留這兩個文件 – NaveenBharadwaj

回答

2

可以使用java.io.File類。 它有一個方法來檢查填充是否存在。

實施例:

//create files 
File original =new File("C:\\test\\testfile.txt"); 
File destination =new File("D:\\test\\file.txt"); 
//check if file exists. 
for(int x=0;destination.exists()==true;x++){ 
//if file exists then add 1 to file name and check if exists again. 
destination=new File("D\\test\\file"+x+".txt"); 

} 
//copy file. 
Files.copy(origional, destination, StandardCopyOption.REPLACE_EXISTING); 
1

這個方法有一個重載版本,它使用一個布爾標誌,如果爲true,它將覆蓋目標文件。

public static void copyFileToDirectory(File srcFile, 
        File destDir, 
        boolean preserveFileDate) 
          throws IOException 

http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html#copyFileToDirectory(java.io.File, java.io.File, boolean)

+0

FileUtils.copyFileToDirectory(Clipboard.getSystemClipboard()。getFiles()。get(0),destinationPath,true ); 我正在使用這個,但我得到一個錯誤。 java.io.IOException:Source'E:\ Workspace \ 02-TestRepository \ TestScript \ 6 \ 2.json'和目標'E:\ Workspace \ 02-TestRepository \ TestScript \ 6 \ 2.json'是一樣的 – NaveenBharadwaj

+0

@naveenbharadwaj你爲什麼要將文件複製到自己?這沒有任何意義,對吧? – Kon

+0

我沒有將文件複製到文件。源代碼是E:\ Workspace \ 02-TestRepository \ TestScript \ 6 \ 2.json。目標是E:\ Workspace \ 02-TestRepository \ TestScript \ 6。我在調試模式下檢查它。但copyFile函數在copyToDirectory中調用並引發此錯誤。我不知道爲什麼 – NaveenBharadwaj

相關問題