4

以下代码在 Mac 上返回文件时工作正常,因为它会自动将文件扩展名附加到文件名。

然而,在 Windows 上,我必须输入文件的扩展名作为文件名的一部分,以便它以该扩展名返回......即使在“保存类型为”下拉菜单中选择了扩展名。

从 Windows 上的文件选择器返回文件时,有没有办法自动将扩展名附加到名称中?

FileChooser.ExtensionFilter extFilter = new   FileChooser.ExtensionFilter(fileExtension.toUpperCase()+" files(*."+fileExtension+")", "*."+fileExtension);
                fileChooser.getExtensionFilters().add(extFilter);

                //Show save file dialog 
                final File file = fileChooser.showSaveDialog(MyStage.this);
4

1 回答 1

2

我遇到了同样的问题。我的解决方案是创建一个新文件,并将文件扩展名作为字符串附加到文件构造函数中。

如果您希望用户能够选择和覆盖现有文件,请确保并添加检查以确保初始保存文件在附加之前不包含特定扩展名,否则您将获得类似“test.xls.xls ”。

FileChooser fc = new FileChooser();
    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("XLS File (*.xls)", "*.xls");

    fc.getExtensionFilters().add(extFilter);

    File save  = fc.showSaveDialog(stage);

    save = new File(save.getAbsolutePath()+".xls");

    FileOutputStream fileOut = new FileOutputStream(save);
于 2012-10-09T11:55:59.837 回答