Я впервые использую класс ZipArchive в PHP, и у меня возникли некоторые проблемы. Все, что я пытаюсь сделать, — это перебирать файлы в ZIP-архиве, и все это работает, за исключением того, что, кажется, нет никакого способа получить имена подкаталогов внутри ZIP-файла, и мне нужна эта информация. Если внутри подкаталога есть файлы, я полагаю, что мог бы разобрать имена каталогов по именам файлов, но если есть пустые каталоги, они полностью потеряны.
Например, если у меня есть это дерево каталогов в ZIP:
root_folder
root_folder -> test_file.ext
root_folder -> empty_dir
Теперь я пытаюсь прочитать записи этого файла ZIP в память, как это в PHP:
<?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, чтобы найти все файлы и каталоги, в том числе пустые внутри архива?
Задача ещё не решена.
Других решений пока нет …