Я использую 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; мне нужен собственный AWD FileDialog.)