这是我的递归文件和文件夹删除器功能。
function rmdirRecursively($dir) {
global $exc;
$it = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($dir),
RecursiveIteratorIterator::CHILD_FIRST
);
$excludeDirsNames = array();
$excludeFileNames = $exc["files"];
foreach ($it as $entry) {
if ($entry->isDir()) {
if (!in_array($entry->getBasename(), $excludeDirsNames)) {
try {
rmdir($entry->getPathname());
} catch (Exception $ex) {
// dir not empty
}
}
} elseif (!in_array($entry->getFileName(), $excludeFileNames)) {
unlink($entry->getPathname());
}
}
}
我通过发送必须递归删除的父目录名称来触发此功能(及其所有内容)
问题是,我得到
[2012 年 10 月 7 日 04:31:51] PHP 警告:rmdir(./somefolder) [function.rmdir]:第 69 行的目录不为空`RecursiveIteratorIterator::CHILD_FIRST`
我错过了什么?