Php 当与unlink函数一起使用时,递归迭代器的行为很奇怪

Php 当与unlink函数一起使用时,递归迭代器的行为很奇怪,php,iteration,Php,Iteration,我有一个文件夹,里面有706个文件。它只存储修剪过的缩略图。有时我需要把它擦干净。所以我创建了一个函数,它利用递归DirectoryIterator来擦除这些文件。以下是我的功能: function wipeDir($path) { $i = 0; $src = realpath(get_home_path().$path); $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($sr

我有一个文件夹,里面有706个文件。它只存储修剪过的缩略图。有时我需要把它擦干净。所以我创建了一个函数,它利用递归DirectoryIterator来擦除这些文件。以下是我的功能:

function wipeDir($path)
{
    $i = 0;
    $src = realpath(get_home_path().$path);
    $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($src, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST);
    foreach ($files as $filename => $fileInfo) {
        $i++;
        unlink($filename);
    }

    return $i; 
}
问题是,如果我使用unlink函数,它只处理527个文件和$I=527。当我运行此函数两次时,它会清除此目录中的所有文件,但如果我注释unlink函数$I=706,则此文件夹中的项目数是正确的。
不知何故,unlink函数在到达文件527时从迭代器中断。有人知道这是为什么吗?

问题在于我的流浪宅基地盒子。。。它可以在我的生产服务上正常工作,并删除所有文件,但不适用于本地开发环境。

可能重复的