*Markus: File umbenennen scheitert

Beitrag lesen

Hallo,

alles das File betreffend kommt aus dieser Methode:

  
   if (e.getSource() == telefondateiSpeichern)   {  
    if (filechooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION)   {  
                DateiSpeicherung datenspeichern = new DateiSpeicherung(filechooser.getSelectedFile());  
                try  {  
                 datenspeichern.datenSpeichern(pdfleser.getListe());  
                 writeInfomeldung(GREEN, "Die Datei " + filechooser.getSelectedFile() + " wurde erfolgreich gespeichert.");  
                }  
                catch (FileNotFoundException fnfe)  {  
                 writeInfomeldung(RED, fnfe + ": Die Datei wurde nicht gefunden!");  
                }  
                catch (IOException ioe)   {  
                 writeInfomeldung(RED, ioe + ": Eingabe-Ausgabe-Fehler!");  
                }  
    }  
   }  

Hier die komplette Klasse Datenspeicherung:

  
public class DateiSpeicherung  {  
  
 private File file;  
  
 public DateiSpeicherung(File filename)   {  
  file = filename;  
 }  
  
 private File checkAndSetExtension(File filename) throws IOException   {  
  String dateiname = filename.getName().trim();  
        if (dateiname.lastIndexOf('.') != -1)   {  
         if (!dateiname.substring(dateiname.lastIndexOf('.')).toLowerCase().equals(".tel"))  {  
            System.out.println("1: " + file.getAbsolutePath());  
            if (filename.renameTo(new File(file.getAbsolutePath(), file.getAbsolutePath() + ".tel")) == false)  
             throw new IOException();  
         }  
        }  
        else   {  
       System.out.println("2: " + file.getAbsolutePath());  
        if (filename.renameTo(new File(file.getAbsolutePath(), file.getAbsolutePath() + ".tel")) == false)  
         throw new IOException();  
        }  
  
  return filename;  
 }  
  
 public void datenSpeichern(HashMap<String, String> telefondaten) throws FileNotFoundException, IOException     {  
  ObjectOutputStream outputstream;  
  
  file = checkAndSetExtension(file);  
  
  outputstream = new ObjectOutputStream(new FileOutputStream(file));  
  outputstream.writeObject(telefondaten);  
  outputstream.close();  
 }  
}  

Markus