JavaFX FileChooser未返回Windows的文件扩展名



在mac上返回文件时,以下代码运行良好,因为它会自动附加文件扩展名为文件名。

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

当从windows上的filechooser返回文件时,有没有一种方法可以自动将扩展名附加到名称上?

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);

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

如果您希望用户能够选择并覆盖现有文件,请确保并添加一个检查,以确保初始保存文件在附加之前不包含特定的扩展名,否则您将获得类似"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);

最新更新