2016-03-01 77 views
-1

我正在使用jfilechooser生成一個新的文件,但用戶的要求是比較,如果生成的文件已經存在於驅動器或沒有。如果它已經存在,則生成一個新的文件名,如果它不存在,則生成該文件。如何使用jfilechooser生成唯一的文件名?

所以我給我的代碼用於生成任何驅動器位置的文件。

public void actionPerformed(ActionEvent e) { 
     JFileChooser dialog = new JFileChooser(); 
     int dialogResult = dialog.showSaveDialog(null); 
     if (dialogResult==JFileChooser.APPROVE_OPTION){ 
      String filePath = dialog.getSelectedFile().getPath(); 
      try { 
       Document document = new Document(); 
       PdfWriter.getInstance(document, new FileOutputStream(filePath)); 
       document.open(); 
       document.add(new Paragraph("File with path " + filePath)); 
       document.close(); 
      } 
      catch(DocumentException de) { 
       de.printStackTrace(); 
      } catch (IOException ioe) { 
       ioe.printStackTrace(); 
      } 
     } 

回答

0

用一些數字後綴到您的文件名。例如。 fileName01,fileName02等。如果具有此名稱的文件已存在,則可以輕鬆地增加數字後綴。

你也可以使用File#createTempFile(String prefix, String suffix)方法來生成這樣的文件名。

+0

但先生我使用jfilechooser生成文件的名稱,如z:\\ test.pdf,但是當我們再次嘗試保存z:\\位置的下一個文件首先檢查test.pdf名稱已退出或不退出如果退出然後生成新的PDF文件名稱。請從我們的項目 – satish

+0

@satish發送邏輯它的要求,基本上這不是你的責任,在這個對話框中生成新的文件名。看看它是如何在MS Word中實現的。當你嘗試保存的文件和文件已經存在時,你給出3個選項:'替換現有文件'(只是重寫存在文件),'用不同文件名保存更改'(再次打開對話框,詢問用戶另一個文件文件名),「合併文件內容」(如果可能的話)。我認爲在你的對話框中,你應該提出前2個選項,並且根本不會自動生成文件名 –

+0

因此我如何才能實現你的觀點。用戶需求與你想象的一樣,所以Plesase給我發送邏輯來解決我的問題問題 – satish