*Markus: File umbenennen scheitert

Beitrag lesen

Hallo,

bei einem einer Methode übergebenen File will ich bei fehlender
Extension diese hinzufügen. Dabei versuchte ich verschiedene Variationen
von getAbsolutePath, o.ä. bishin zu getName(). Testhalber lasse ich mir
sogar die Pfade ausgeben:

  
 private File checkAndSetExtension(File filename)   {  
  String dateiname = filename.getName().trim();  
        if (dateiname.lastIndexOf('.') != -1)   {  
         if (dateiname.substring(dateiname.lastIndexOf('.')).toLowerCase() != ".tel")  {  
            System.out.println("1: " + file.getAbsolutePath().toString());  
            if (filename.renameTo(new File(file.getAbsolutePath().toString(), file.getAbsolutePath().toString() + ".tel")) == false)  
             throw new SecurityException();  
         }  
        }  
        else   {  
       System.out.println("2: " + file.getAbsolutePath().toString());  
        if (filename.renameTo(new File(file.getAbsolutePath().toString(), file.getAbsolutePath().toString() + ".tel")) == false)  
         throw new SecurityException();  
        }  
  
  return filename;  
 }  

Das Problem ist folgendes:
Werfe ich eine SecurityException, kann die Datei NIE gespeichert
werden, selbst dann nicht, wenn die Extension richtig ist, was mich
weiters zu der Annahme führt, dass folgende Zeile falsche
Ergebnisse liefert:

if (dateiname.substring(dateiname.lastIndexOf('.')).toLowerCase() != ".tel")

Ich ließ mir diesen Substring ausgeben, aber er IST definitiv ".tel",
wodurch ich erstens nicht verstehe, warum das Programm in diese
Verzweigung einsteigt und zweitens woran es scheitert, dass die Datei
nicht gepspeichert wird, denn lasse ich den Wurf der Exception bei beiden
Fällen einfach weg, kann die Datei plötzlich gespeichert werden. Nur
funktioniert hier eben das Hinzufügen der Extension ".tel" nicht. Die
Datei würde so gespeichert werden, wie der Dateiname auch übergeben
wurde. Durch die Exception wollte ich eben überprüfen, warum es nicht
unbenannt werden kann, aber durch den Wurf der Exception treten nur noch
mehr Fragen auf.
Ich benutze übrigens Gentoo Linux und in meinem Home-Verzeichnis, das
file.getAbsolutePath().toString() übrigens auch richtig ausgibt, kann ich
definitiv schreiben. Andernfalls würde die Datei ja ohne Exception auch
nicht gespeichert werden.
Weiß jemand Rat? Ich bin mit meinen Weisheiten am Ende.

Markus