Save FileDialog in Java streift die ursprüngliche Dateierweiterung

8

Ich benutze java.awt.FileDialog, um einen Dialog zum Speichern einer Datei zu erstellen. Das Problem ist, dass FileDialog, wenn ich einen vorgeschlagenen (Standard) Dateinamen vorschlage, seine Erweiterung streift. Beispiel:

%Vor%

Ich würde erwarten, dass wenn der FileDialog erscheint, der Standarddateiname "Untitled.txt" ist, aber stattdessen ist es einfach "Untitled". Wenn Benutzer auf Speichern klicken, erhalte ich einen Dateinamen ohne die Erweiterung. FileDialog tut dies sowohl unter Windows als auch unter OS X.

Ich verstehe es nicht. Warum sollte FileDialog die Erweiterung absichtlich entfernen? Gibt es einen logischen Grund dafür? Die Dokumentation diskutiert es nicht. Als Workaround könnte ich einfach die Erweiterung zu der Zeichenfolge hinzufügen, die FileDialog zurückgibt, aber trotzdem scheint das ein Fehler zu sein ...

(Beachten Sie, dass ich JFileChooser nicht verwenden kann; ich brauche den nativen AWT FileDialog.)

    
vocaro 28.02.2011, 16:18
quelle

4 Antworten

2

Das ist bei mir unter Windows 7 mit Sun Java 1.5 und 1.6 nicht der Fall.

Das Verhalten, das ich erhalte, hängt leicht von der Einstellung der Option "Erweiterungen bekannter Dateitypen verbergen" im Windows Explorer ab. Wenn das eingeschaltet ist, dann sehe ich die Erweiterung im Dateidialog nicht, wie Sie vielleicht erwarten, aber es gibt mir den vollständigen Dateinamen zurück.

BEARBEITEN: Realisieren, dass ich mich bei AWT und nativen Widgets geirrt habe - verwirrende AWT und Swing.

    
Tom Quarendon 28.02.2011, 16:26
quelle
2

Ich habe nach einer Antwort auf genau dieses Problem gesucht, das nur auf Mac erscheint. Sie müssen entweder mit der hässlichen JFileChooser-Option (swing, lightweight, native look) leben oder ein if (os ist mac) haben und die Dinge anders handhaben, indem Sie die Dateierweiterung am Ende selbst setzen.

Es ist ein Mac Java AWT Bug, der hoffentlich irgendwann behoben wird.

    
Gubatron 22.09.2011 16:26
quelle
1

Hier ist ein Beispiel, wie man eine neue Datei im angegebenen Verzeichnis und Namen der Datei von FileDialog, Strings aus einem Vektor von Strings. Es funktioniert für mich!

%Vor%     
Dragos Roban 18.08.2015 08:13
quelle
-1

Verwenden Sie JFileChooser, aber legen Sie das am Anfang des Programms:

%Vor%     
monster860 16.06.2012 22:16
quelle

Tags und Links