Hallo,
ich möchte ein Verzeichnis löschen, in dem Dateien enthalten sind.
Randbedingung: Ist eine Datei schreibgeschützt oder von einer anderen Anwendung geöffnet soll die Routine mit einer Fehlermeldung abbrechen.
Folgende Lösung habe ich bisher:
Ist die Datei schreibgeschützt, bekomme ich tatsächlich dank canWrite() ein False zurück.
Ist die Datei von einer anderen Anwendung geöffnet, wird die Datei trotzdem gelöscht.
Interessanterweise bricht die Routine beim Löschen des Verzeichnisses trotzdem ab.
Wie kann ich das Löschen von anderweitig geöffneten Dateien verhindern?
Wie frägt man das ab?
Gruß
_____
/hogo
ich möchte ein Verzeichnis löschen, in dem Dateien enthalten sind.
Randbedingung: Ist eine Datei schreibgeschützt oder von einer anderen Anwendung geöffnet soll die Routine mit einer Fehlermeldung abbrechen.
Folgende Lösung habe ich bisher:
Code:
boolean rmdir(File f) {
boolean flag = true;
if (!f.exists()) return false;
if (f.isDirectory()) {
File filelist[] = f.listFiles();
for (int i = 0; i < filelist.length && flag; i++)
flag &= rmdir(filelist[i]);
}
if (!f.canWrite())
return false;
return (flag && f.delete());
}
Ist die Datei schreibgeschützt, bekomme ich tatsächlich dank canWrite() ein False zurück.
Ist die Datei von einer anderen Anwendung geöffnet, wird die Datei trotzdem gelöscht.
Interessanterweise bricht die Routine beim Löschen des Verzeichnisses trotzdem ab.
Wie kann ich das Löschen von anderweitig geöffneten Dateien verhindern?
Wie frägt man das ab?
Gruß
_____
/hogo