ordner löschen

  • Antworten:4
  • Bentwortet
Jack-In-Da-Box
  • Forum-Beiträge: 1.569

17.03.2010, 22:22:09 via Website

hallo,

wenn ich eine datei löschen will, funktioniert das:
1File file = new File("/sdcard/folder/file.txt");
2file.delete();

wenn ich aber einen leeren ordner löschen will:
1File file = new File("/sdcard/folder");
2file.delete();

passiert nichts, obwohl true zurückgegeben wird!
was mache ich falsch?

Antworten
goto android
  • Forum-Beiträge: 138

17.03.2010, 22:25:18 via Website

public boolean delete()

Deletes the file or directory denoted by this abstract pathname. If this pathname denotes a directory, then the directory must be empty in order to be deleted.

Returns:
true if and only if the file or directory is successfully deleted; false otherwise
Throws:
SecurityException - If a security manager exists and its SecurityManager.checkDelete(java.lang.String) method denies delete access to the file
Ist der Ordner leer? Sollte eigentlich false zurückgeben wenn nicht. Kann es sein das der Ordner gleich wieder erstellt wird?

— geändert am 17.03.2010, 22:25:31

Antworten
Jack-In-Da-Box
  • Forum-Beiträge: 1.569

17.03.2010, 22:27:22 via Website

der ordner ist definitiv leer und die activity (bzw die app) wird sofort nach dem delete-befehl mit finish() beendet.
das macht mich ganz kirre... sollte doch eigentlich funzen... zumal er TRUE zurück gibt! keine exception!

Antworten
Jack-In-Da-Box
  • Forum-Beiträge: 1.569

17.03.2010, 22:35:27 via Website

alles klar... musste DOCH alles danach auskommentieren... dachte finish() beendet sofort...
anscheinend wohl nicht *g*

Antworten
goto android
  • Forum-Beiträge: 138

17.03.2010, 22:38:00 via Website

Hatte mal so ein ähnliches Problem mit delete() und createNewFile().

Setze es mal in eine do while Schleife wo du mit exists() abfragst ob es immer noch existiert und wenn nicht den Thread kurz (mach es mal mit 1000ms das sollte locker langen) schlafen legst. Aber eine do while Schleife, damit er wirklich mindestens einmal kurz zeit hat bevor alles per finish() beendet wird.

Klingt blöd & hässlich aber schau mal ob das Problem dann immer noch auftritt.

€: dann ist ja gut. :)

— geändert am 17.03.2010, 22:40:21

Antworten