我可以使用任何實用程序對文件進行強制重命名:Java.io?
據我所知,Java 7中具有這些功能,但我不能用它...
如果我做了強制重命名Java中的文件
File tempFile = File.createTempFile();
tempFile.renameTo(newfile)
如果newfile中存在,那麼它的失敗。
如何進行強制重命名?
我可以使用任何實用程序對文件進行強制重命名:Java.io?
據我所知,Java 7中具有這些功能,但我不能用它...
如果我做了強制重命名Java中的文件
File tempFile = File.createTempFile();
tempFile.renameTo(newfile)
如果newfile中存在,那麼它的失敗。
如何進行強制重命名?
我認爲你必須手動做 - 這意味着你必須檢查目標名是否已經作爲一個文件存在,並在做真正的重命名之前將其刪除。
你可以寫一個程序,做到這一點:
public void forceRename(File source, File target) throws IOException
{
if (target.exists()) target.delete();
source.renameTo(target)
}
這種方法的缺點是,在刪除後和重命名另一個進程可以創建一個名爲新的文件之前。
因此,另一種可能性是將源的內容複製到目標文件中,然後刪除源文件。但是這會消耗更多的資源(取決於文件的大小),只有在可能重新創建已刪除文件的情況下才應該這樣做。
你總是可以刪除newFile
第一:
File newFile = ...
File file = ...
newFile.delete();
file.renameTo(newFile);
我想,以避免競爭條件...... – 2010-01-18 12:16:39
然後嘗試第二種方案,但複製的內容,並刪除舊文件。我應該提供示例代碼嗎? – Mnementh 2010-01-18 12:25:20