| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программное обеспечение > Проблема с zip !!!!! |
| Автор: sergejzr 8.8.2005, 21:38 |
| На 2000 винде создал архив через правую кнопку "add to x.zip" Через фтп послал файл на solaris. Дома на XP скачал этот архив а он говорит, что битый Подозреваю, что в процесск пересылки кодировка где нить слетела. Плиз, посоветуйте что делать.. Оригинальных файлов не осталось |
| Автор: Retro 8.8.2005, 21:42 |
| sergej.z Есть проги которые восстанавливают битые архивы (с определенной вероятностью), когда-то пользовался, но не помню ни названия ни производителя |
| Автор: Akina 8.8.2005, 21:53 |
| Если где-то неверно описан MIME-тип - карачун твоему архиву... впрочем с какой бы стати он неверен... На будущее - пакуй РАРом с recovery record и переименуй в что-нить стандартное (скажем BMP) |
| Автор: Snowy 9.8.2005, 10:28 | ||
А имена файлов показывает? А RAR что говорит? RAR умеет восстанавливать битые ZIP, пытаясь угадывать нужные байты по CRC. Но, если нет таблицы файлов, то можно смело хоронить. Если есть, то есть и надежда. ZIP не делает solid компрессии, поэтому есть вероятность восстановления хирургическим путем хотя бы части файлов. |
| Автор: sergejzr 9.8.2005, 12:36 |
| Рар не открывает его также.. Говорит unsupported. Прогнал его через pkzipfix. Теперь открывается, видны названия файлов. Но не распаковывается ничего. Не винраром, не винципом. |
| Автор: Snowy 9.8.2005, 12:42 |
| Если данные так важны, то можно попробовать написать программу нарезки одного архива на кучку маленьких отдельных архивов - один архив = один файл. Может какие-то и возьмет... |
| Автор: sergejzr 9.8.2005, 12:57 |
| А что нибудь есть готовое? Я просто не представляю, как это сделать. С форматом разбираться времени нет.. |
| Автор: Snowy 9.8.2005, 14:29 |
| Готового не встречал. Знать формат нужно приблизительно. Делается просто: Создаем новый архив из одного файла. От него нам потребуется только хвост. (72 байта) Исходный файл нарезаем на куски. Каждый кусок определяем по заголовку. Каждый файл в архиве начинается с четырех байт - 50,4B,03,04 Для надежности можем проверять размер - он в заголовке в 19-22 байтах заголовка. Можем и не проверять - мусор некритичен. 27-30 байты - длина имени файла. Имя файла идет сразу за длиной. Хотя даже это все знать необязательно. Главное нарезать на куски, в отдельные файлы. Имя файла можно генерить случайно - реальное имя все равно будет нормальным после извлечения. Сохраняем в отдельный файл, приклеиваем наш хвост. Только в последние 8 байт пишем размер нового файла - 72 байта. Работоспособность можно будет проверить на живом архиве. Я думаю за час можно написать без проблем. Повреждены могут быть не все файлы. Что-то да вытащится нормально, если не настолько все сильно покарежено, что вообще все испорчено. Добавлено @ 14:32 Я могу написать, но готовый вариант только завтра. Сегодня как назло весь день расписан. Может вечерком часик выкрою, если до завтра ждет... |
| Автор: sergejzr 9.8.2005, 14:52 |
| |