Вступление
При пересылке через Интернет ZIP-архивов, и тем более, при переносе их на дискетах, есть определенная вероятность того, что архив будет испорчен. Существуют специальные программы для восстановления испорченных ZIP-архивов, и когда мне попался испорченный файл, я решил проверить их работоспособность.
Файл назывался ls_hcp22.zip. Архиватор WinZip в нем архив не признавал.
WinRAR тоже "ругался" на неправильное окончание файла,
однако за архив файл все же признавал и даже показывал содержимое.
Архиватор
PowerArchiver тоже выдал сообщение о том, что это - негодный архив.
Power Archiver
С этого архиватора я и решил начать восстановление. В меню Tools (Инструменты) есть пункт Repair Archive (Исправление архива).
Программой PowerArchiver был создан файл ls_ hcp22_ PAFixed.zip, при этом было выдано сообщение о восстановлении двух из трех файлов архива. В восстановленном архиве действительно содержались два указанных файла, которые можно было разархивировать.
PowerArchiver 2002 8.0 (размер 2.22Mb): линк
Advanced Zip Repairer (AZR)
Следующей программой, которую я попробовал, стала
Advanced Zip Repairer (AZR).
Программа написала, что архив успешно восстановлен и сохранила его под именем ls_hcp22_fixed.zip. Однако разархивировать файл patch.exe так и не удалось - при разархивации с помощью WinZip выдавалось сообщение о неправильном окончании файла, WinRAR писал о неправильной контрольной сумме.
В ответах на часто задаваемые вопросы к программе такая ситуация была описана, разработчики предлагали путь ее решения. Для этого вместо расширения выходного файла ZIP надо поставить EXE, тогда программа создаст самораспаковывающийся архив, который по-прежнему не будет полностью разархивироваться, используя сторонние архиваторы, однако встроенная в него программа сможет распаковать все файлы.
Действительно, был создан самораспаковывающийся архив, а затем успешно разархивирован. Однако файл patch.exe оказался неработоспособным.
Advanced Zip Repairer 1.52 (размер 828Kb): линк
PKZIPFIX
Напоследок вспомним о программе PKZIPFIX из состава архиватора
PKZIP 2.50 для DOS. PKZIPFIX работает из командной строки с единственным параметром - именем испорченного архива, в ответ программа создает файл PKFIXED.ZIP. Из созданного архива удалось разархивировать все те же два файла.
PKZIP 2.50 (размер 202Kb): линк
Выводы
По результатам работы программ можно сделать следующие выводы о восстановлении ZIP-архивов: файл архива по сути состоит из множества частей входящих в него файлов, при некоторых повреждениях часть файлов после обработки соответствующими программами может быть восстановлена, однако это бывает не всегда возможно и зависит от степени и характера повреждений, а также от метода архивации. Для того, чтобы иметь возможность восстановления архива в случае его частичного повреждения, вы можете использовать при архивации восстановительную запись, которая путем избыточного хранения информации и благодаря использованию специальных алгоритмов позволяет увеличить вероятность восстановления архива. Для создания архива с восстановительной записью вы можете использовать, например, архивы формата RAR, созданные архиватором WinRAR.