private function ensuredEraseDir($dirname)
{
try {
$listing = $this->fs->listContents($dirname, false);
foreach ($listing as $item) {
if ($item['type'] === 'dir') {
$this->fs->deleteDir($item['path']);
} else {
$this->fs->delete($item['path']);
}
}
return;
} catch (Error $ex) {
} catch (Exception $ex) {
}
throw new WriteException("Directory {$dirname} could not be erased.", $ex);
}