2017-03-17 34 views
0

Zip文件numFiles似乎返回比實際包含在存檔1個額外的文件。例如,如果存檔文件只有99個文件,則numFiles將表示100個文件。在以下代碼中,filesProcessed始終是文件實際數量的+1(它已初始化爲0)。這是一個已知的錯誤,還是歸檔(zip文件)作爲文件的歸檔?ZipArchive numfiles不準確

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}."); 
    } 
} 
+0

難道是隱藏文件? –

+0

我不能確認,但在3個文件test.zip它正確計數三。所以即時猜測文件結構中的某個地方必須有一個隱藏的文件導致它。 – Alex

回答

0

這不是一個錯誤,通過WinRAR打開任何存檔並查看裏面有多少個元素。屏幕截圖顯示4個,但其中3個。

enter image description here

你需要做的符號檢查 「..」

+0

我不認爲你是正確的。如果我壓縮3個文件我得到4個文件,並且如果其中一個文件在目錄中,您將得到相同的結果。如果你進入該目錄,你還會看到'..',這只是指示前一個目錄的存檔方式。遞歸迭代器也是如此。 – Alex