// File Objekt für die Ursprungs-Datei erzeugenFile source =newFile("e:/test.txt");// File Objekt für die neue Datei erzeugenFile destination =newFile("e:/test/test.txt");// Datei wird umbenannt/verschobenif(!source.renameTo(destination)){System.err.println("Fehler beim Umbenennen der Datei: "+ source.getName());}
Funktioniert bei mir fehlerfrei.
Wahrscheinlich verwendest du einen "\" anstatt "\\" bzw. "/".
Ansonsten musst du halt prüfen, ob source.isFile() true liefert (bzw. sogar noch ob die Lese und Schreibrechte vorhanden sind).
[Edit]
Da ich es sehe, bei Win7/Win6 kann ich mir durchaus vorstellen, das du nicht so einfach auf C: schreiben darfst.
[Edit2]
Der Zielordner muss offenbar existieren, also davor anlegen, wenn nicht vorhanden.
Many aspects of the behavior of this method are inherently platform-dependent: The rename operation might not be able to move a file from one filesystem to another, it might not be atomic, and it might not succeed if a file with the destination abstract pathname already exists. The return value should always be checked to make sure that the rename operation was successful.
File oldFile =newFile("C:/test/test.txt");File newFile =newFile("C:/test/test/test.txt");if(!oldFile.renameTo(oldFile)){// Wenn das nicht geht (andere Platte / von der VM nicht unterstützt)FileInputStream reader =newFileInputStream(oldFile);FileOutputStream writer =newFileOutputStream(newFile);byte buffer[];while(reader.available()>0){/* Wenn die verbleibende Groesse kleiner als die Buffergroesse ist */
buffer =newbyte[1024> reader.available()? reader.available():1024];
reader.read(buffer);
writer.write(buffer);}
reader.close();
writer.close();
oldFile.delete();}}
Ist aus dem Kopf getippt.
Ich werde das noch mal kurz testen und ggf. editieren.
An für sich sollte das so aber funktionieren.
publicstaticvoidmain(String[] args)throwsFileNotFoundException,IOException{File alt =newFile("C:/feb/queue/");File neu =newFile("C:/feb/queue/gesendet/");File[] files = alt.listFiles();if(files !=null){for(int i =0; i < files.length; i++){if(!files[i].isDirectory()){if(!files[i].renameTo(neu)){System.err.println("Fehler beim Umbennen der Datei: "+ files[i].getName());}}}}}
publicstaticvoidmain(String[] args)throwsFileNotFoundException,IOException{File alt =newFile("C:/feb/queue/");File neu =newFile("C:/feb/queue/gesendet/");File[] files = alt.listFiles();if(files !=null){for(int i =0; i < files.length; i++){if(!files[i].isDirectory()){boolean success = files[i].renameTo(newFile(neu, files[i].getName()));if(!success){System.err.println("Fehler beim Umbennen der Datei: "+ files[i].getName());}System.out.println(files[i].getName());}}}}
publicstaticvoidmain(String[] args){File alt =newFile("E:/");String targetDir ="E:/test/";File[] files = alt.listFiles();if(files !=null){for(int i =0; i < files.length; i++){if(!files[i].isDirectory()){File targetFile =newFile(targetDir+files[i].getName());if(targetFile.isFile()){System.out.println("Datei bereits vorhanden");continue;}if(!files[i].renameTo(targetFile)){System.err.println("Fehler beim Umbennen der Datei: "+ files[i].getName());}else{System.out.println("Verschoben:"+ files[i].getName());}}}}