Рассматривается один из случаев восстановления документа Visio в формате VSDX. Предыстория — файл неожиданно перестал открываться. При попытке открытия Visio выдает ошибку.
Способ основан на том, что файл в формате VSDX представляет собой архив ZIP, содержащий множество вложенных файлов. И этими файлами можно манипулировать, но не всегда. В сломанном архиве часть операций блокируется.
Ниже показан один из вариантов действий в такой ситуации:
- Попытка открыть архив с помощью ZIP выводится сообщение, что файл открыть не удается. Смотрим, чем может помочь RAR.
- При попытке протестировать архив получаем сообщение, что он поврежден или имеет неизвестный формат.
- Пытаемся просто открыть его. При поиске файла указываем «Все файлы», потому что по умолчанию RAR не считает VSDX архивным файлом. Что-то открывается, но выводится сообщение о неожиданном конце архива. То есть ошибка в структуре.
- Но RAR умеет восстанавливать архивы. Выполняем команду «Восстановить архив». RAR выводит перечень файлов, которые ему удалось найти, и создает новый (восстановленный) файл.
- Проводим операцию тестирования нового файла. Архиватор сообщает, что в одном из файлов обнаружена ошибка контрольной суммы. То есть структура архива восстановлена, но один из компонентов искажен.
- Мы можем просмотреть структуру полученного файла, найти место, где расположен искаженный объект. Судя по размещению (папка embeddings) и имени (oleObject.bin), сломан внедренный OLE-объект. Можно предположить, что после его удаления и удаления всех ссылок на него, оставшаяся часть архива будет воспринята Visio как нормальный документ
Однако поиск и исправление ссылок – довольно кропотливая работа. Поэтому реально при восстановлении данного документа пошли другим путем. В Visio был создан пустой файл-приемник. Этот файл также открыт как архив. И из восстановленного архива в новый архив переброшены папки masters, pages и файл Content_Types.xml.
Полученный файл открывается в Visio без сообщения об ошибке и содержимого оказалось достаточно для продолжения работы.