Rename/Delete File in Java

Hallo,

ich möchte in meinem Program ein File umbenennen oder löschen. Komisch ist, dass es manchmal geht und manchmal nicht. Meistens aber nicht.
Hier der Code:

// A File object to represent the filename
File inputFile = new File(fileName);
// Attempt to delete it
boolean success = inputFile.delete();
if (!success)
{
//Error
}

Ich arbeite mit Java 1.5 auf Win XP bzw. Win2003.
Frage ich die Eigenschaten des Files ab scheint auch alles ok:
canRead=true
canWrite=true
isDirectory=false
isFile=true
isHidden=false
Path=c:\realtech\test_in\test_move1.txt
AbsolutePath=c:\realtech\test_in\test_move1.txt
Name=test_move1.txt
last modify=1234440275885
length=28487

Da es machmal geht und manchmal nicht kann es aeigentlich kein Berechtigungsproblem sein zumal eine JAVA-Prog doch sowieso alle Rechte hat !?

Habt Ihr eine Idee ?
Wie könnte man alternativ ein File löschen ?

Danke
Albert

Hallo,

umbenennen bzw. verschieben einer Datei funktioniert nur, wenn der Pfad existiert. Das heißt, Du kannst eine Datei
C:/tmp/einOrdner/demo.txt
nur umbenennen nach
C:/tmp/einOrdner/weitererOrdner/demo.txt
wenn das Verzeichnis
C:/tmp/einOrdner/weitererOrdner/
exisitert.
Es sollte aber in jedem Fall eine Exception fliegen und deren StackTrace solltest Du dann mal posten.

Auch beim Löschen sollte eine Exception fliegen, wenn es die Datei bzw. den Ordner nicht gibt.
Damit das passiert solltest Du einen try-catch-block benutzen:

 // Attempt to delete it
 boolean success = false;
 try {
 success = inputFile.delete();
 } catch (Exception e1) {
 e1.printStackTrace();
 }
 if (!success){
 System.out.println("could not delete");
 }else{
 System.out.println("successfully deleted");
 }

Außerdem wäre es hilfreich, wenn Du mal postest, wie der Pfad zusammengesetzt wird.
Dabei wird nämlich häufig der Fehler gemacht, nicht die OS Path-Seperator zu nutzen.
Der Pfad sollte beispielsweise so zusammengesetzt werden:

File.pathSeparator+"Desktop"+File.pathSeparator+"demo.txt"

Vielleicht hilft Dir das schon weiter, ansonsten musst Du noch mehr Details preisgeben.

Gruß, Stephan

Hallo,

danke für die Antwort.

Ich habe den Fehler gefunden. Ich hatte die Datei auch über mein Program angelegt und wollte sie an anderer Stelle umbenennen/löchen.
Der Fehler war, dass ich die geschriebene Datei (den Stream) nicht geschlossen hatte.

Blöder Anfänger Fehler.

Albert