Mithilfe von Java eine Datei umbenennen

TobGod

Erfahrenes Mitglied
Hallo Leute,

für viele sicher ganz simpel, ich versuche schon seit Stunden und verzweifel gerade. renameTo() der File-Class will einfach nicht funktionieren, habe es mir bei GalileoComputing auch schon durchgelesen ohne Erfolg. Also ich habe eine Datei C:\alt.txt und möchte diese gerne in C:\neu.txt umbenannt haben.

Code:
File alt = new File("C:\alt.txt");
boolean res = alt.renameTo(new File("C:\neu.txt"));
System.out.println(res);

Natürlich wird immer false zurückgegeben und es tut sich nichts.
 
Wahrscheinlich findest du die Datei nicht oder? Könnte daran liegen, dass die Datei keinen Inhalt hat.
Probiers mal mit:
Code:
File alt = new File("E:\\alt.txt");
		BufferedWriter bw = new BufferedWriter(new FileWriter(alt));
		bw.write("test");
		bw.close();

		boolean res = alt.renameTo(new File("E://neu.txt"));
		System.out.println(res);
so klappts
 
Wichtig ist, dass du den Backslash 2 mal hinter einander schreibst. Ein einzelner Backslash leitet eine Escape-Sequenz ein, d.h. in deinem Beispiel würde Java vermutlich nach der Datei "C:lt.txt" suchen, weil "\a" nicht als Escape-Sequenz erkannt wird. In "C:\neu.txt" würde "\n" in das Zeilentrennzeichen ersetzt werden. Schau dir doch mal die Escape Sequences an: http://download.oracle.com/javase/tutorial/java/data/characters.html
Alternative: Du verwendest einfach den normalen slash. Dieser wird sogar von Windows problemlos erkannt und intern genau wie ein Backslash verarbeitet.

Korrekt wäre also:
Java:
File alt = new File("C:\\alt.txt");
oder
Java:
File alt = new File("C:/alt.txt");
 
Ach das gibt es ja nicht, vielen lieben Dank. Das habe ich total aus den Augen gelassen, weil ich irgendwie nur an Dateipfade dachte und nicht dass es ja auch nur ein String ist.
 
Zurück