2010-01-03 38 views
0

情景: 我我的一個文件名繪圖另存爲圖片。一段時間後,我對文件圖片進行了一些更改並再次保存。如何保存和遞增後綴的文件 - 文件1,文件2,等

由於兩個文件名稱相同,是否可以將新文件自動保存爲圖片而不需要手動更改程序中的文件名? ...我的意思是如果文件名稱相同,自動在文件名的末尾添加數字?

所以在最後,如果我做的文件這麼多次的變化,我會命名爲圖片,圖片1,圖片2,圖片3許多文件......

+0

爲了更準確地幫助您,我們需要知道您如何「保存」您的文件。它是通過輸出方法還是自動執行?請精確遊覽問題。 – 2010-01-03 09:38:52

+0

更改標題以匹配問題。 – 2010-01-03 09:43:26

回答

2

你可以使用create temp file方法對於這一點,使用:

  • 爲前綴的文件的基本名稱,在這種情況下,這將是「圖片報」
  • 爲後綴的圖像類型,例如「.png」

根據定義創建的文件將是唯一的。

另一種方式是基於當前時間創建一個唯一的文件名,如:

SimpleDateFormat fmt = new SimpleDateFormat("picture_yyyyMMdd_HHmmss.png"); 
String filename = fmt.format(new Date()); 

這將使你與問候編輯歷史meaningfull文件名。

+0

感謝rsp :-) .. – Jessy 2010-01-03 16:22:29

1

當然,如果你這樣編程。如果您想要的文件名存在,請檢查是否存在具有相同名稱的文件,該文件具有從1開始的遞增整數。一旦找到一個不存在的名稱,就用它作爲名稱。請務必使用文件擴展名來做正確的事情(您可能需要file2.txt,而不是file.txt.2)。

if filename exists 
{ 
    loop suffix from 1 to some limit 
    { 
     if filename + suffix doesn't exist 
     { 
      exit loop and use this name 
     } 
    } 
} 
+1

如果您允許用戶擁有任意數量的保存文件,您將需要對其進行二進制搜索。 – 2010-01-03 11:11:58

+0

@Thorbjørn:可能是真的,但取決於所需的行爲,如果中間的某個文件已被刪除。 – 2010-01-03 11:17:21