6
我正在努力如何使用SPL迭代器在PHP中刪除空目錄樹。考慮其中所有的目錄都是空的目錄結構如下:PHP使用SPL迭代器遞歸刪除空目錄
/TOPDIR
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
等來做到這一點。請不要提供與解決方案類似的功能。
我覺得我必須失去了一些非常基本的在這裏...
你確定所有這些目錄中包含沒有別的,但目錄? –
好的,他們很可能是,我能用空目錄重現這個錯誤。 :) –
是的。我已經創建了目錄結構作爲針對此問題的完整檢查。 – rdlowrey