我正在努力解决如何使用 SPL 迭代器删除 PHP 中的空目录树。考虑以下所有目录为空的目录结构:
/顶部目录
level1 level2
我尝试了以下方法:
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(
'/topdir', RecursiveIteratorIterator::CHILD_FIRST
));
foreach ($it as $file) {
if ($file->isDir()) {
rmdir((string)$file);
}
}
但是RecursiveIteratorIterator::CHILD_FIRST
阻止底层文件成为循环的一部分,我得到标准的Directory not empty
E_WARNING 因为 level1 不是空的。
如何使用 SPL 迭代器递归删除空目录树?注意:我知道如何使用 , 等来执行此操作glob
。scandir
请不要将这些/类似功能作为解决方案提供。
我觉得我必须在这里遗漏一些非常基本的东西......