2015-01-13 27 views
5

我想從一個文件夾中的文件(影像)移動到另一個:我如何才能將文件與Java另一個文件夾?

例如:

/home/folder1/image.png

/home/folder1/folder2/image.png

而且顯然從文件夾中刪除圖像1

我試圖通過閱讀路徑,然後修改它,或使用renameTo來做到這一點,但我不能做到這一點。

我希望有人能幫助我這一點,謝謝。

編輯:

嗯,我可以把代碼,但它是簡單的解釋我做了什麼:

我只是創造出了我的文件夾(/家/資料夾)的文件對象的文件夾類,我讀的所有圖像,並將其保存在一個文件數組,然後我掃描,並嘗試每個圖像文件字符串的路徑更改爲另一個

編輯:

感謝所有的幫助,都是很好的例子,我能夠將我的文件更改爲另一個位置,有一堆我想移動,文件的,我不想創建太多的對象。

+0

請問你可以添加你獲得的錯誤嗎? – SummerCode

+1

和代碼你已經使用了點。 – Reti43

+1

使用Apache FileUtils'moveFile'方法輕鬆完成:http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html – colti

回答

3

你說你嘗試renameTo,並沒有工作,但這個工作對我來說。我重命名後刪除了原始文件。

File a = new File("C:\\folderA\\A.txt"); 
a.renameTo(new File("C:\\folderB\\" + a.getName())); 
a.delete(); 
+0

renameTo對同一物理磁盤有限制。所以在磁盤之間移動將失敗。 –

2

解決此問題的常用方法是複製文件,然後將其從原始位置刪除,但您可以按照此tutorial瞭解更多信息。另外,平臺(linux,windows,並不重要)。

1

我沒有跑這一點,但它應該工作

File f1 = new File("/home/folder1/image.png"); 
File f2 = new File("/home/folder1/folder2/image.png"); 

f1.renameTo(f2); 
1

有很多方法可以讓你做到這一點。 這個片段就是其中之一,你可以像這樣移動你的文件:

try { 
    final File myFile = new File("C:\\folder1\\myfile.txt"); 
    if(myFile.renameTo(new File("C:\\folder2\\" + myFile.getName()))) { 
     System.out.println("File is moved successful!"); 
    } else { 
     System.out.println("File is failed to move!"); 
    } 
}catch(Exception e){ 
    e.printStackTrace(); 
} 
相關問題