Datei im Filesystem löschen

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Mit der Methode

Code:
public boolean delete()

der Klasse File habe ich folgendermaßen versucht eine Datei zu löschen.

Code:
File test = new File("C:\\test.txt");
System.out.println(test.delete());

Seltsamerweise erhalte ich als Ausgabe "false" obwohl die Datei im Verzeichnis C:\ liegt. Habt ihr eine Ahnung woran das liegen kann? Das dumme ist, dass ich einfach nur false zurück erhalte. Ist es irgendwie möglich, eine Exception zu erhalten die mir die Ursache warum die Datei nicht gelöscht werden kann etwas genauer beschreibt?
 
Gibt es die Datei mit genau übereinstimmendem Namen wirklich und hat das Programm die Rechte es zu löschen (z.T. unter Vista problematisch)?
Du kannst alternativ versuchen anders (schreibend/lesend) darauf zuzugreifen und sehen was das für Fehler gibt.
 
Ich nutze Vista...

Lesend kann ich auf die Datei zugreifen. Löschen kann ich sie nicht. Kann es sein, dass ich bezüglich der Rechte etwas verändern muss?

Es muss doch möglich sein irgendwie eine Fehlermeldung zu bekommen mit der man etwas anfangen kann.
 
Hab mal was von virtuellen Pfaden oder so ähnlich bei Vista gehört.
D.h. Du denkst, dein Programm schreibt nach "C:\" allerdings leitet Vista das automatisch in ein anderes temporäres Verzeichnis um.

Allerdings muss das bei Dir nicht der Fall sein ... könnte aber ...

mfg
Marcus
 
Die Klasse FILE kennt die Methode canRead(), bzw. canWrite(). Damit kannst du prüfen, ob du eine Datei lesen, bzw. schreiben (und somit löschen) kannst.

Und ja, unter Vista sind die Recht der Datei zu beachten...

Am besten du schaust dir einfach mal die Methoden der Klasse FILE an, dort gibt es alles, was du brauchst. Also auch Möglichkeiten, die Rechte der Datei zu ändern.
 
kann gut an vista liegen. ich muss aber noar widersprechen. canRead/Write gibt keine auskunft ob du wirklich löschen kannst. hier oftgenug ausprobiert.
für vista ist es das sinnvollste der java(w) ein vista-manifest zu verpassen um die virtuellen verzeichnisse zu deaktivieren. dann klappts ach mit canRead/write/delete
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben