Вернуться   Компьютерный форум > Блоги > Базаров
Оценить эту запись

Восстановление поврежденных архивов

Запись от Базаров размещена 31.01.2015 в 02:57

Хранение информации в архиве, в принципе, более надежно, чем в исходном виде: из-за того, что данные хранятся в сжатом виде, меньше вероятность их случайного повреждения, например из-за дефектов магнитного покрытия диска. Но в некоторых случаях архивные файлы с большой вероятностью могут быть повреждены. Вот наиболее типичные из таких ситуаций:
  • запись архива на дефектную дискету или чтение его с такой дискеты;
  • передача архива по телефонной сети через модем ("электронная почта");
  • повреждения из-за воздействия вирусов, неосторожных действий пользователей, неправильно работающих программ и т.д.
Типы повреждений архивов
В архивном файле содержится информация двух видов: упакованная информация помещенных в архив файлов и справочные сведения об этих файлах (оглавление архива). Повреждения данных, принадлежащих какому-либо файлу, приводят только к невозможности восстановления этого файла. Но повреждение в оглавлении архива может привести к тому, что весь "остаток" архива будет использовать невозможно.
Повреждения в данных файла
Если данные какого-либо файла в архиве повреждены, то при просмотре оглавления архива никаких данных об ошибке выведено не будет. Это и не удивительно - при просмотре оглавления читается только оглавление архива, а не содержимое файлов. Но при проверке архива или извлечении файлов из архива программы PKUNZIP и ARJ вычисляют код циклического контроля для каждого файла и сообщают пользователю, если этот код не совпадает с записанным в оглавлении архива. Вот эти сообщения:

По окончании проверки архива или извлечения файлов из архива на экран выводится сообщение о наличии ошибок в архиве:

При извлечении сбойных файлов из архива программа PKUNZIP оставляет их на диске (обычно они ни к какому использованию не пригодны), а программа ARJ - удаляет. Впрочем, программа ARJ может не удалять извлеченные из архива сбойные файлы, для этого ей надо указать режим -JR.
Повреждения в оглавлении архива
При повреждении оглавления .ARJ-архивов вы можете считать, что вам крупно не повезло. Обычно при просмотре оглавления, тестировании или извлечении файлов из такого архива на экран в какой-то момент выводится сообщение типа
Can't read file or unexpected end of file
(Не могу прочесть файл или неожиданный конец файла)
и остаток архива уже никак использовать не удастся. Впрочем, при знании структуры .ARJ-файлов (она описана в документации, поставляемой с этим архиватором) опытный пользователь или программист сможет вручную выбросить поврежденный участок из архива. Однако занятие это не из приятных.
А с .ZIP-файлами надежды на восстановление данных из архива гораздо больше. Дело в том, что в .ZIP-архивах оглавление записывается дважды: один раз сведения о каждом файле из архива содержатся перед данными этого файла, а второй раз - в конце архива. Поэтому при большинстве повреждений .ZIP-архивов удается восстановить почти все данные из архива. Если программы PKZIP или PKUNZIP обнаруживают, что оглавление архива повреждено, они выводят на экран сообщение:
имя-архива: Error in ZIP, use PKZipFix!
(ошибка в архиве, используйте программу PKZipFix)
Программа PKZipFix
Для восстановления информации из поврежденных архивных файлов вместе с программами PKZIP и PKUNZIP поставляется специальная программа PKZIPFIX. Она позволяет восстанавливать .ZIP-архивы с поврежденным оглавлением. Формат вызова:
PKZIPFIX имя-архивного-файла
Эта программа создает в текущем каталоге архивный файл PKFIXED.ZIP, содержащий всю информацию, которую удалось восстановить из исходного архивного файла. Рекомендуется извлечь из него все файлы с помощью программы PKUNZIP, а затем снова упаковать их с помощью программы PKZIP. Другой вариант - проверить содержимое архива (режим -Т программы PKUNZIP), удалить из него поврежденные файлы (режим -D программы PKZIP) и затем присвоить архиву исходное имя.
Размещено в Без категории
Просмотров 1889 Комментарии 0 Отправить другу ссылку на эту запись
Всего комментариев 0

Комментарии

 

Текущее время: 17:30. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.