delete-file-or-directory(Parent a, name_regex b, [recurse c])
Gruppe |
Diese Funktion löscht einzelne oder mehrere Dateien (und evtl. Verzeichnisse) im lokalen Dateisystem. Das Verzeichnis, unter dem sich die Dateien befinden, wird in a angegeben.
In Parameter b wird das Dateinamensmuster erwartet. Wenn der optionale Parameter c=true ist, werden auch Verzeichnisse gelöscht, die dem Namen b entsprechen. Wenn nötig, wird jeweils der gesamte Inhalt vorher gelöscht.
Der Rückgabewert ist true, wenn das Löschen erfolgreich war (alles wurde gelöscht) und keine Fehler aufgetreten sind. Wenn einzelne Dateien/Verzeichnisse wegen fehlender Zugriffsrechte nicht gelöscht werden können, werden sie übersprungen. Der Rückgabewert ist dann false. Wenn das als Parameter a angegebene Verzeichnis nicht existiert oder die Zugriffsrechte kein Löschen zulassen, wird auch false zurückgegeben. Jede einzelne Datei wird in das Log des Jobs eingetragen, entweder als erfolgreich gelöscht oder als erfolgloser Löschversuch. Wenn entsprechend Parameter a und b keine Dateien existieren, die zu löschen wären, wird true zurückgegeben (das Ziel, dass die angegebenen Dateien nicht existieren, wurde dann ja ohne Fehler erreicht).
Hinweis: In einem Mapping-Test wird das Löschen nur simuliert.
Parameterbeschreibung
Parameter |
Beschreibung |
a |
Elternverzeichnis, unter dem gelöscht wird, relativ oder absolut. Das Elternverzeichnis selbst wird nie gelöscht. Als Pfadtrenner wird generell der Slash (/) verwendet. Freigaben (Samba/Windows) werden in Parameter a nicht akzeptiert, auch dann nicht, wenn sie in die Whitelist eingetragen werden. Parameter a muss in der Whitelist (systemweit in ./etc/admin/datawizard/whiteListPaths.properties definiert) erfasst sein. Ist das nicht der Fall, erfolgt ein Abbruch mit Fehler. Die Prüfung erfolgt aber nur, wenn diese Datei existiert und wenigstens einen Eintrag enthält. Achtung: Andernfalls wird ohne Prüfung der Erlaubnis gelöscht. |
b |
Dateinamensmuster, darf Platzhalter (* und ?) enthalten. Möglich ist auch ein regulärer Ausdruck mit Präfix regex:. Pfadtrenner (/ \) sind nicht erlaubt. Hinweis: Das Dateinamensmuster ist case-sensitive, auch unter Windows. |
c |
(optional) Falls false, dann werden nur Dateien unter a gelöscht, keine Verzeichnisse. Wenn true, dann werden auch Verzeichnisse gelöscht, auf die der Name b zutrifft. Falls es darunter Dateien gibt, werden diese alle (rekursiv) vorher gelöscht. |