Php ZipArchive numfiles不准确

Php ZipArchive numfiles不准确,php,ziparchive,Php,Ziparchive,Zip归档文件numFiles似乎比归档文件中实际包含的文件多返回1个文件。例如,如果存档只有99个文件,numFiles将显示100个文件。在下面的代码中,处理的文件总是+1文件的实际数量(初始化为0)。这是一个已知的bug,还是归档文件本身(zip文件)算为一个文件 public function zipExtract($file, $extractPath) { if ($this->zip->open($file) === true) { $this-

Zip归档文件
numFiles
似乎比归档文件中实际包含的文件多返回1个文件。例如,如果存档只有99个文件,
numFiles
将显示100个文件。在下面的代码中,处理的文件总是+1文件的实际数量(初始化为0)。这是一个已知的bug,还是归档文件本身(zip文件)算为一个文件

public function zipExtract($file, $extractPath)
{
    if ($this->zip->open($file) === true) {
        $this->filesProcessed = $this->zip->numFiles;
        $this->zip->extractTo($extractPath);
        $this->zip->close();
    } else {
        throw new Exception(__FUNCTION__ . " could not extract file. Failed to open: {$file}.");
    }
}

这不是一个错误,通过WinRAR打开任何归档文件,看看里面有多少元素。 截图显示有4个,但实际上是3个


您需要对符号进行检查。“

它可能是隐藏文件吗?我无法确认,但在包含3个文件的test.zip上,它正确地计算了3个。所以我猜在文件结构的某个地方一定有一个隐藏的文件导致了它。我不认为你是对的。如果我压缩3个文件,我会得到4个文件,如果其中一个文件在一个目录中,你会得到相同的结果。如果您输入该目录,您还将看到“..”,这只是表示上一个目录的存档方式。递归迭代器也是如此。