Ordner löschen

MiRaMC

Erfahrenes Mitglied
Yo Leute,
Ich habn Prog gschrieben dass verschiedene Ordner (die vorher angelegt worden sind) über ein File-Objekt löschen soll. Es gibt bei der ganzen Geschichte aber ein Problem:
Wenn in dem Ordner Dateien enthalten sind wird der Ordner nicht gelöscht. Wie umgeht man des am besten?

[Ende der Durchsage]
 
Hi,
Ordner können prinziepiell nicht gelöscht werden, so lange sie noch nicht leer sind.
Hier brauchst du eine Methode, die rekursiv durch den Ordner durchläuft und alle Files und Unterordner des aktuellen Ordners löscht.

Ich brauchte das auch mal und habe da mal ne Methode geschrieben:

Code:
	public boolean del(File dir){
		if (dir.isDirectory()){
				String[] entries = dir.list();
				for (int x=0;x<entries.length;x++){
					File aktFile = new File(dir.getPath(),entries[x]);
					del(aktFile);
				}
				if (dir.delete())
					return true;
				else
					return false;
			}
			else{
				if (dir.delete())
					return true;
				else
					return false;
			}
	}

Ob das Ding funktioniert und wie performat es ist, weiß ich leider nicht mehr, da ich es gerade aus einer Klasse rauskopiert habe, versuch es einfach mal, wenn nicht melde dich nochmal, dann schaue ich mir die Methode nochmal an.
 
Sollte funktionieren ausser wenn in dir noch ein Unterordner existiert.
Muss nurnoch die Rekursion rein. :rolleyes:
 
Geht aber noch einfacher:

public boolean del(File dir){
if (dir.isDirectory()){
File[] files = dir.listFiles();
for (File aktFile: files){
del(aktFile);
}

}
return dir.delete()
}
 
Mal davon abgesehen, dass der Thread über 5 Jahre alt ist... Das Apache-Commons-Paket machts einem sogar noch leichter:

Java:
FileUtils.deleteDirectory(dir);
 
Zurück