【问题标题】:File chooser is picking the wrong directory for exporting [closed]文件选择器选择了错误的导出目录[关闭]
【发布时间】:2014-07-22 12:45:13
【问题描述】:

我有一个相当简单的程序,一旦将一些数据输入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));
}

【问题讨论】:

  • 请考虑在您的问题中添加Minimal, Complete, and Verifiable example,以便其他人可以测试您面临的行为。
  • 不要在路径中使用反斜杠 (\) - 使用正斜杠 (/)。它在 Windows 上没有任何区别,但在大多数其他平台(包括 OS X)上会让你头疼。
  • 不要使用平台相关的字符串。要么使用File.separator,要么使用构造函数new File(String parent, String child)
  • 为什么关闭?该帖子遵守所有 MCVE 规则:它很小,但很完整(如果您不知道如何在某些代码周围放置 main 方法,那么您不应该在这里)并且它清楚地描述了问题:当他尝试将文件放在桌面的子文件夹中,但它最终出现在桌面上,但仅在 Mac 上;不在 PC 上。 Bot @Mac 和我可以毫不含糊地轻松理解问题。

标签: java excel swing jtable filechooser


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-26
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 2011-12-13
    相关资源
    最近更新 更多