文件select器正在挑选出错的目录

我有一个相当简单的程序,一旦一些数据被input到一个JTable它可以被导出或“保存”到一个Excel电子表格。 所有这一切工作正常,它是完美的保存excel文件。

我碰到的问题是这样的:

当你尝试把excel文件放在桌面文件夹(桌面/文件夹)的子文件夹中时,它将它保存在桌面上。 它只在Mac上做到这一点。

当我在Windows电脑上这样做的时候,它的工作时间是100%。

我想知道是否有人对这个问题有任何认识或解决办法?

这是我的JFileChooser代码,理论上会导致这个问题。

 JFileChooser fc = new JFileChooser(); fc.setSelectedFile(new File(jTextField3.getText() + jTextField6.getText() + "-" + jTextField7.getText() + "-" + jTextField8.getText())); int option = fc.showSaveDialog(PScalcUI.this); if(option == JFileChooser.APPROVE_OPTION){ String filename = fc.getSelectedFile().getName(); String path = fc.getSelectedFile().getParentFile().getPath(); int len = filename.length(); String ext = ""; String file = ""; if(len > 4){ ext = filename.substring(len-4, len); } if(ext.equals(".xls")){ file = path + "\\" + filename; }else{ file = path + "\\" + filename + ".xcl"; } toExcel(jTable1, new File(file)); } 

您正在使用反斜杠(仅适用于Windows)以平台相关方式构build“文件”。

您需要使用带有父path和文件名的java.io.File的构造函数来构造正确的文件对象:

  File file; if(len > 4){ ext = filename.substring(len-4, len); } if(ext.equals(".xls")){ file = new File(path, filename); }else{ file = new File(path, filename + ".xcl"); } toExcel(jTable1, file);