Kompletten Ordner löschen

  • 7 Antworten
  • Letztes Antwortdatum
D

devTestdev

Gast
Also ich habe mir mal rausgesucht wie ich einen kompletten Ordner löschen könnte:
Code:
void DeleteRecursive(File fileOrDirectory) {
    if (fileOrDirectory.isDirectory())
        for (File child : fileOrDirectory.listFiles())
            DeleteRecursive(child);

    fileOrDirectory.delete();
}

Doch wo kann ich da das Directory definieren (z.b. /sdcard/dowloads/PDF_files/)
Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Naja du musst der Methode doch einfach nur eine Instanz des Objekts "File" übergeben, bei der der Dateiname/-pfad bzw. Ordnername/-pfad festgelegt ist.

Also der Aufruf der Funktion kann bspw. so aussehen:

Code:
DeleteRecursive(new File("/sdcard/dowloads/PDF_files/"));

Ggf. solltest du überlegen, ob du wirklich "/sdcard/" fest vorgeben willst. Ich arbeite da lieber mit der getExternalStorageDirectory-Funktion - für den Fall, dass eine Rom "/sdcard/" nicht kennt (bei CyanogenMod 10 sind die Standard-Ordner afaik /storage/sdcard.." und falls da mal kein Symlink auf "/sdcard/" referenziert, könnte es ja unter Umständen zu Problemen führen. Das könnte dann etwa so aussehen:

Code:
DeleteRecursive(new File(Environment.getExternalStorageDirectory().getAbsolutePath()  + "/dowloads/PDF_files/"));

Ist aber nur so eine Idee/Vorschlag/Hinweis ;)
 
Danke sehr!! Schau es mir gleich mal genauer an!

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Zuletzt bearbeitet von einem Moderator:
Nein funktioniert leider nicht, löscht gar nichts :(

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Zuletzt bearbeitet von einem Moderator:
Doch funktioniert, habs extra getestet ;)

Besser du zeigst deinen Code vom Aufruf und so, dann kann man auch helfen.... :rolleyes:
 
Ich habe es so:
Code:
 File TFilesDelete = new File(Environment.getExternalStorageDirectory().getAbsolutePath()  + "/Android/data/com.my.app.name/temp/");

void DeleteRecursive(File TFilesDelete)
{
if (TFilesDelete.isDirectory())
for (File child : TFilesDelete.listFiles())
DeleteRecursive(child);

TFilesDelete.delete();
}

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Zuletzt bearbeitet von einem Moderator:
Du wirst die Methode trotzdem erst noch aufrufen müssen ;)


Code:
File TFilesDelete = new File(Environment.getExternalStorageDirectory().getAbsolutePath()  + "/Android/data/com.my.app.name/temp/");

[B]DeleteRecursive(TFilesDelete);
[/B]
void DeleteRecursive(File TFilesDelete)
{
if (TFilesDelete.isDirectory())
for (File child : TFilesDelete.listFiles())
DeleteRecursive(child);

TFilesDelete.delete();
}

Greets,
Max
 
  • Danke
Reaktionen: swordi
Hallo allerseits,

ich bin heute auf diesen Thread hier gestoßen und hoffe Ihr könnt mir bei meinem Problem weiterhelfen.
ich bin dezent am verzweifeln und bekomme meinen Code einfach nicht zum laufen.

Ich habe unter anderem einen Button in meiner App der per OnClick verfahren alle Dateien und Unterverzeichnisse aus einem bestimmten Ordner löschen soll, nur leider funktioniert das ganze bei mir nicht :-(
Zur Sicherheit habe ich vorher eine AlertDialog Methode mit eingebracht und bin mir nicht sicher ob das das eigentlich "HINDERNIS" an der Sache ist....

Mein Code für die ganze Sache sieht wie folgt aus :


final Context context = this;
public void deleteFiles() {
delete = (Button) findViewById(R.id.delete);
delete.setOnClickListener(new OnClickListener() {
public void onClick(View v) {

File TFilesDelete = new File(Environment.getExternalStorageDirectory(), "/HSC/Bilder/");

new AlertDialog.Builder(context)
.setTitle("Löschvorgang bestätigen:")
.setMessage("Sind Sie sicher das alle aufgenommenen Bilder gelöscht werden sollen?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// hier soll der Code für das Löschen des Ordnerinhaltes herein (alle Dateien und Unterordner von "/HSC/Bilder" sollen gelöscht werden) { if (TFilesDelete.isDirectory()) for (File child : TFilesDelete.listFiles()) DeleteRecursive(child); TFilesDelete.delete(); }
}


})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
})
.show();
}
});
}

Der AlterDialog kommt auch und fragt ob man sicher ist etc... aber es wird nichts gelöscht :-(
Ich habe schon versucht nach der letzten genannten Methode von Myeta vorzugehen, aber ich komme auch damit einfach nicht weiter .

Vielleicht habt ihr einen Tipp wie ich mein Problem lösen könnte.
Wäre euch mehr als dankbar darüber. Bekomme langsam graue Haare von dieser Geschichte :-(

MfG

Andre
 

Ähnliche Themen

AnnaBauer21
Antworten
6
Aufrufe
988
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten