我有一个相当简单的程序,一旦将一些数据输入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));
}
答案 0 :(得分:1)
您正在构建'文件'以平台相关的方式使用反斜杠,仅适用于Windows。
您需要使用同时采用父路径和文件名的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);