Я попытался использовать PHP для запуска 7zip, чтобы рекурсивно извлечь все zip-файлы, которые пользователь поместил в другие zip-файлы, а затем удалить исходный zip-файл.
Код, который я использовал, работал, за исключением файла большего размера (около 7 гигабайт), который имел некоторые необычные типы файлов (например, файлы hdr и cab), где он не полностью извлекал файлы, делал дубликаты некоторых из них, а затем не удалял оригинальный zip. Единственное, что я увидел в этом необычном, это то, что в командной строке я запустил php-файл из сообщения «Incomplete Extraction». Я не уверен, почему извлечение и удаление работали для каждого файла, кроме этого.
Любая помощь в понимании этого будет принята с благодарностью!
Спасибо за ваше время
Вот фрагмент кода:
$cmd_2 = "FOR /R \"$zip_file_directory\" %I IN (*.zip) DO (7z x \"%I\" -aou -o\"%~dpI\" && del \"%~fI\")";
exec($cmd_2, $out_2, $ret_2);
РЕДАКТИРОВАТЬ
Также он вернул 0 код выхода. Итак, снова я понятия не имею, что пошло не так.
Однако, глядя на $out
Я могу видеть около 2700 отношений ключ / значение в массиве (пример: [2685] => Extracting Client Video\Reviewer\setup.lid
)
И в самом конце написано «Ошибки подпунктов: 5», но я не могу найти способ точно определить, что это значит.
РЕДАКТИРОВАТЬ II
Я просматривал 2700 строк кода и нашел несколько таких: «[1325] => can not open output file
…. «, а затем имеет имя файла.
Любая идея, почему это происходит так редко (похоже, что это 5 ошибок) из тысяч строк извлечения?
РЕДАКТИРОВАТЬ III
Есть статья Вот в котором говорится, что это может быть проблема 7zip с брандмауэром, кто-нибудь может подтвердить или опровергнуть это?
Задача ещё не решена.
Других решений пока нет …