Um mit dem FTP Adapter von Gaufrette rekursiv Dateien und Unterverzeichnisse zu löschen kann man folgenden Trick anwenden um nicht in die Fehlermeldung zu geraten:
ftp_rmdir(): Directory not empty.
1. erst alle Dateien löschen
2. dann die tiefsten Verzeichnisse bis hin zu den obersten löschen:
/** * @param Filesystem $fileSystem */ function deleteAllFilesInDirectory(Filesystem $fileSystem) { // delete files first, than directories foreach ($fileSystem->keys() as $key) { if (!$fileSystem->isDirectory($key)) { $fileSystem->delete($key); } } $keys = $fileSystem->keys(); usort($keys, function (string $a, string $b){ $aCount = substr_count($a, '/'); $bCount = substr_count($b, '/'); return $bCount <=> $aCount; }); foreach ($keys as $key) { $fileSystem->delete($key); } }