我第一次在 PHP 中使用 ZipArchive 类,我遇到了一些麻烦。我要做的就是遍历 ZIP 存档中的文件,一切正常,但似乎没有任何方法可以获取 ZIP 文件中的子目录名称,而我需要这些信息。如果子目录中有文件,我想我可以从文件名中解析出目录名,但是如果有空目录,它们就会完全丢失。
例如,如果我在 ZIP 中有这个目录树:
root_folder
root_folder -> test_file.ext
root_folder -> empty_dir
现在我尝试在 PHP 中像这样将该 ZIP 文件的条目读入内存:
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') == TRUE) {
for ($i = 0; $i < $zip->numFiles; $i++) {
$filename = $zip->getNameIndex($i);
echo $filename."<br />";
}
$zip->close();
}
?>
如果我这样做,则root_folder\test_file.ext
可以正确找到,但root_folder\empty_dir
会完全丢失。
那么如何使用 ZipArchive 类来查找所有文件和目录,包括存档中的空文件和目录?