# Ordner löschen



## MiRaMC (10. Mai 2005)

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]


----------



## Zilchinger (10. Mai 2005)

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:


```
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.


----------



## magnet (10. Mai 2005)

Sollte funktionieren ausser wenn in *dir * noch ein Unterordner existiert.
Muss nurnoch die Rekursion rein.


----------



## Zilchinger (10. Mai 2005)

Rekursion ist doch drin.
habe es auch gerade nochmal probiert, also bei mir gehts


----------



## magnet (11. Mai 2005)

stimmt  blind gewesen ...


----------



## MiRaMC (11. Mai 2005)

Yo, Klasse Ding.


----------



## Javagot (8. Oktober 2010)

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()
    }


----------



## benjamin10 (8. Oktober 2010)

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


```
FileUtils.deleteDirectory(dir);
```


----------

