我正在使用 java.awt.FileDialog 创建一个用于保存文件的对话框。问题是,当我指定建议的(默认)文件名时,FileDialog 会删除其扩展名。例子:
import java.awt.*;
import java.io.*;
public class SaveFile {
public static void main(String[] args) {
FileDialog fileDialog = new FileDialog(new Frame(), "Save", FileDialog.SAVE);
fileDialog.setFilenameFilter(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
fileDialog.setFile("Untitled.txt");
fileDialog.setVisible(true);
System.out.println("File: " + fileDialog.getFile());
}
}
我希望当 FileDialog 出现时,默认文件名是“Untitled.txt”,但它只是“Untitled”。当用户单击保存时,我得到一个不带扩展名的文件名。FileDialog 在 Windows 和 OS X 上都执行此操作。
我不明白。为什么 FileDialog 会故意剥离扩展名?这有什么合乎逻辑的原因吗?文档没有讨论它。作为一种解决方法,我可以简单地将扩展名添加到 FileDialog 返回的字符串中,但这似乎是一个错误......
(请注意,我不能使用 JFileChooser;我需要本机 AWT FileDialog。)