我正在自動執行一系列的操作,我們爲了獲得一些時間而做了很多操作。這包括移動文件並開始一些批次。Java 7 ATOMIC_MOVE給出例外
在這種特殊情況下,我試圖將文件從一個位置複製到另一個位置。所有工作正常,直到我嘗試使用ATOMIC_MOVE複製選項。這是我的代碼:
private void copyToDropFolder(Datafile datafile, String company) throws IOException{
Path datafilePath = datafile.getDataPath();
String dropFolder = locations.getLocationFor("default");
Path dropPath = Paths.get(dropFolder, company.toUpperCase(),locations.getLocationFor("drop"), datafile.getFileName());
Files.copy(datafilePath, dropPath, StandardCopyOption.ATOMIC_MOVE);
}
我已經檢查並解決了datafilePath和dropPath的位置,它們都是有效的。我已經嘗試了其他2個標準複製選項,並且程序運行良好。只有ATOMIC_MOVE纔會得到UnsupportedOperationException。並不是我絕對需要這個具體的選擇,但我很好奇爲什麼我不會工作。我無法找到關於這個問題的任何其他報告。我在Windows 7機器上這樣做。
我錯過了什麼嗎?或者ATOMIC_MOVE只是不被支持?
你爲什麼試着'ATOMIC_MOVE'做一個_copy_操作?這根本不符合邏輯。或者你想使用'link()'? – fge
你正在嘗試使用哪種文件系統類型?這可能是該操作不受支持(http://docs.oracle.com/javase/tutorial/sesential/io/move.html) –
@fge你是對的......當你以這種方式看待它時,它沒有任何意義。但是在一個名爲StandardCopyOption的枚舉中有一個ATOMIC_MOVE選項也沒什麼意義:/你指出很好,我沒有這樣想。至於現在,我真的不想用它,我只是試了一下,它失敗了。我很困惑,爲什麼它會失敗。 – anothernoc