*Markus: File umbenennen scheitert

Beitrag lesen

Hallo,

mir ist nicht ganz klar, warum Du überhaupt File.renameTo() verwendest. Mit renameTo() wird diese Datei nämlich sofort im Filesystem umbenannt.

Ja, genau das war auch das Problem. Die Datei existierte nämlich dort noch nicht.

Du müsstest also im Fall, dass die _gewählte_, also schon vorhandene Datei eine .tel-Datei ist, diese verwenden und wenn nicht, dann einfach ein neues File-Objekt mit new File(file.getAbsolutePath().concat(".tel")) erzeugen und dann _dieses_ weiter verwenden.

Ja, das scheint die einzige Möglichkeit zu sein. Jedenfalls funktioniert es jetzt so:

  
 private File checkAndSetExtension() throws IOException   {  
  if (!file.getName().trim().toLowerCase().endsWith(".tel"))  
   file = new File(file.getAbsolutePath().concat(".tel"));  
  return file;  
 }  

Danke für deinen Hinweis. Übrigens verstehe ich nicht ganz, was sich die Autoren bei der File-Klasse gedacht haben. Extra ein neues Objekt anlegen zu müssen ist schon eher ein Mit-Kanonen-auf-Spatzen-Schießen.
Ich dachte die renameTo-Methode funktioniert so, dass _in der Instanz des Objekts_ irgend eine Variable, die den Dateipfad beinhaltet, einfach geändert wird, aber offensichtlich gingen die Gedankengänge der Autoren dabei in eine andere Richtung.

Markus