Estoy usando java.awt.FileDialog para crear un cuadro de diálogo para guardar un archivo. El problema es que cuando especifico un nombre de archivo sugerido (predeterminado), FileDialog elimina su extensión. Ejemplo:Guardar FileDialog en Java elimina la extensión de archivo inicial
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());
}
}
que sería de esperar que cuando aparece el FileDialog, el nombre de archivo por defecto es "Untitled.txt", sino que es simplemente "Sin título". Cuando los usuarios hacen clic en Guardar, obtengo un nombre de archivo sin la extensión. FileDialog hace esto en Windows y OS X.
No lo entiendo. ¿Por qué FileDialog deliberadamente quitaría la extensión? ¿Hay alguna razón lógica para esto? La documentación no lo discute. Como solución, yo podría simplemente añadir la extensión de la cadena que devuelve FileDialog, pero aún así, esto parece ser un error ...
(Tenga en cuenta que no puedo usar JFileChooser;. Necesito el AWT FileDialog nativo)
Gracias por la información. De hecho, es cierto que el comportamiento en Windows depende de la configuración "Ocultar extensiones". Y tiene razón, devuelve el nombre del archivo con la extensión, incluso si "Ocultar extensiones" está activado y el usuario no agrega explícitamente la extensión. – vocaro
El problema parece estar aislado de la versión para Mac de Java. La Mac también tiene una configuración de "Ocultar extensiones"; sin embargo, si esa configuración está activada, la extensión está oculta en el campo de texto del diálogo, pero la cadena devuelta NO incluye la extensión. Este es claramente un error multiplataforma, así que presentaré un informe con Apple. De nuevo, gracias por tu ayuda. – vocaro
@vocaro ¿Archivó un informe? Cualquier enlace? ¿Cómo resolviste este problema? – Igor