2012-05-31 51 views
0

根據我的要求,我需要上傳文件到指定的目錄,稍後經過一些修改後,我需要將同一個文件上傳到同一個目錄,這裏以前的文件不應該被覆蓋,這意味着文件必須保存在相同的目錄中同名的目錄(這裏我有一個假設,例如,如果我的文件是abc.txt,修改後如果我上傳修改後的文件,它可以保存爲abc(1).txt)。我該如何解決我的問題?有誰能幫我從這個問題出來。如何在同一個目錄下用java創建多個同名的文件?

在此先感謝。

+2

可能的重複:[使用Java創建具有相似名稱的文件而不覆蓋現有文件](http://stackoverflow.com/questions/10295100/create-files-with-similar-names-using-java-without-overwriting - 現有文件) –

回答

1

在while循環中使用File.createNewFile()。當且僅當文件不存在時它纔會創建文件。這是線程安全的,因爲API保證了原子性。

在循環中檢查文件File.exists()的存在並不能爲您提供這樣的保證。

0

如果你可以堅持上傳的數量,你可以爲每個特定的文件增加一個數字並將其添加到你的文件名(例如foo_1.txt或者你想要的) 如果你不能,你可能想要通過所有的文件並檢查它們是否適合您的命名架構。那麼你可以提取最高的數字,將它加1並將它附加到你的新文件中。

0

檢查File的方法,如:

exists()

如果該文件是存在的,你可以指望一個號碼創建一個像

newFilename = MessageFormat.format("({0}){1}", counter++, originalFilename); 
File newFile = new File(originalFile.getParentFile(),newFilename); 

一個新的文件名,您可以創建和檢查新文件,只要你找到一個不存在的文件名即可。

相關問題