Php ZipArchive numfiles不准确
Zip归档文件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-
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个文件,如果其中一个文件在一个目录中,你会得到相同的结果。如果您输入该目录,您还将看到“..”,这只是表示上一个目录的存档方式。递归迭代器也是如此。