Christoph Gärtner: File umbenennen scheitert

Beitrag lesen

Hallo.

Hast du mal versucht, deine Methode einfach durch meine Version zu ersetzen - ich habe jetzt nicht die Lust, das selbst zu testen...

Bei dir verschleiert die Verwendung von filename und file, dass beide ja Referenzen auf dasselbe Objekt sind - d.h., den Rückgabewert der Funktion kann man sich ebenso wie die Zuweisung file = checkAndSet... sparen (habe ich beim schreiben 'meiner' Methode auch nicht bedacht)

Außerdem versuchst du mit

new File(file.getAbsolutePath(), file.getAbsolutePath() + ".tel")

der durch file adressierten Datei ein Kindelement hinzuzufügen - was aber nur bei Verzeichnissen Sinn ergeben sollte:

  
new File(file.getParentFile(), file.getName() + ".tel")  

Was ich für die sauberste Lösung halte: 'Meine' Methode irgendwo öffentlich zugänglich ablegen (z.B. einfach als public static void checkAndSetExtension(File file, String ext, boolean ignoreCase))), falls man die Funktionalität noch an anderer Stelle benötigt, und der Klasse DateiSpeicherung ein

  
private void checkAndSetExtension()  
{  
    checkAndSetExtension(file, "tel", true);  
}

spendieren.

  
file = checkAndSetExtension(file);  

aus datenSpeichern() wird dann einfach

  
checkAndSetExtension();  

PS: Ich bin davon ausgegangen, dass bei bereits vorhandener Dateieindung diese ersetzt werden soll - falls nicht, müsste man das noch ändern...

Christoph