2016-03-01 78 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