# Dateien umbenennen mit File.renameto()



## xip (20. Nov 2009)

Hallo, ich habe ein Problem mit dem Umbenennen von Datein. Wenn ich in eine Zip Datei umbenenne und dann wieder zurück in den
Ursprung, dann ist es ein Ordner. Kann ich das irgendwie umgehen????



```
//Umbennen
File source = new File("test.txt");
File destination = new File("test.zip");
if(!source.renameTo(destination)){
    System.err.println("Fehler beim Umbenennen der Datei: " + source.getName());
}

// und gleich nochmal zurück
source = new File("test.zip");
destination = new File("temp.txt");   // Tja, und jetzt ist es ein Ordner
if(!source.renameTo(destination)){
    System.err.println("Fehler beim Umbenennen der Datei: " + source.getName());
}
[/Java]
```


----------



## Apokalypse (20. Nov 2009)

In dem du source vorher zipst^^


----------



## bygones (20. Nov 2009)

allgemein - was fuern sinn hat es ein txt -> zip -> txt umzubennen....

renameTo wuerde ich nur bei gleichen Endungen nutzen, alles andere ist unsinnig


----------



## xip (20. Nov 2009)

ja das sieht schon ziemlich dumm aus, ich weis. 

Ich arbeite mit TrueZip und das erwartet als Format zum Einlesen eine *.zip Datei. Meine heißen allerdings *.pdx. Also, erst umbenennen, bearbeiten und dann wieder zurück ins *.pdx.


----------



## FArt (23. Nov 2009)

Truezip ist an manchen stellen sehr praktisch, aber auch manchmal sehr unschön:
Auch wenn das File aus der Truezip-API von File ableitet und somit die gleiche API bietet, verhalten sich die Dinger oft sehr unterschiedlich. Führe den rename NUR auf Objekten von java.io.File aus (nicht casten sondern eigene Instanz erstellen), um "künstliche Intelligenz" von Seiten der Truezip-API auszuschließen. Die Truezip Datei vorher natürlich schließen (flushen oder was man da auch immer tun muss), um das Filehandle freizugeben.

Ich bin mir gerade nicht sicher, aber ich glaube die Datei muss nicht zwingend die Endung .zip aufweisen, ich glaube mich erinnern zu können, sie bereits mit JARs, WARs und EARs benutzt zu haben.


----------

