в популярном архиваторе WinRAR (http://www.rarlab.com) заложена функция восстановления поврежденных архивов. Эта программа может восстанавливать архивы форматов RAR и ZIP. Тип архива WinRAR пытается определить автоматически по сигнатуре файла и по его расширению, но пользователь может указать тип архива и самостоятельно.
Формат RAR предусматривает внесение в архив избыточной информации — так называемой информации для восстановления сразу при его создании. Для этого при добавлении файлов в архив в окне Имя и параметры архива необходимо установить флажок Добавить информацию для восстановления (рис. 1.5). По умолчанию данный флажок снят. На вкладке Дополнительно задается относительный размер информации для восстановления в процентах от общего размера архива.
Рис. 1.5. Создание архива и добавление информации для восстановления
Добавление такой информации неизбежно увеличивает размер архива, но этой мерой предосторожности пользуются не всегда. Как правило, при сжатии файлов на первое место выходит минимальный размер полз^чаемого архива. Создатели программы рекомендуют добавлять информацию для восстановления в архивы, которые предполагается передавать через Интернет, или при сжатии особо ценных данных.
Восстановление архива происходит в два этапа. Сначала в архиве находится блок информации для восстановления. Если такой блок в архиве присутствует, поврежденная часть данных невелика по размеру и непрерывна, то шансы на успешное восстановление велики. В результате архиватор создает новый файл с именем fixed, arcname. rar, где arcname — имя исходного поврежденного архива.
Если в испорченном архиве нет информации для восстановления или повреждение очень серьезное, то делается попытка восстановления по другому алгоритму. Реконструируется лишь структура архива. Создается новый архив с именем rebuilt. arcname. rar, где arcname — имя исходного архива. Из этого восстановленного архива удается извлечь неповрежденные файлы. Из простых архивов успешно извлекаются все уцелевшие данные. Из непрерывного (solid) архива обычно удается восстановить только файлы, располагавшиеся в начале архива до места повреждения.
Когда в процессе обычного открытия архива программа WinRAR обнаруживает в нем ошибки, выводится окно с диагностическими сообщениями (рис. 1.6). По содержанию этих сообщений уже можно судрггь о характере и степени повреждения файла.
Рис. 1.6. Диагностические сообщения программы WinRAR
Для восстановления выделите архив в окне программы WinRAR и нажмите кнопку Исправить или выберите команду Восстановить архив(ы) меню Операции. Какие действия нужно будет выполнить после этого, зависит от характера повреждений и сохранности отдельных компонентов файла.
В частности, при повреждении заголовка потребуется указать, каков формат исходного архива: RAR или ZIP, а также является ли архив непрерывным. В ходе операции восстановления программа может спросить у пользователя, нужно ли считать файлом найденный в архиве элемент: Подозрительный элемент <воз-можное имя файла>. Добавить в архив: Да/Нет/Все. Ответьте Да, чтобы добавить этот элемент в fixed. arcname. rar.
Для устранения неисправностей архивов RAR программа WinRAR представляется оптимальным и основным средством. Для архивов ZIP она также дает неплохие результаты, но здесь конкуренцию составляют многочисленные специализированные программы.