Восстановление VSDX

Рассматривается один из случаев восстановления документа Visio в формате VSDX. Предыстория — файл неожиданно перестал открываться. При попытке открытия Visio выдает ошибку.

Способ основан на том, что файл в формате VSDX представляет собой архив ZIP, содержащий множество вложенных файлов. И этими файлами можно манипулировать, но не всегда. В сломанном архиве часть операций блокируется.

Ниже показан один из вариантов действий в такой ситуации:

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

Однако поиск и исправление ссылок – довольно кропотливая работа. Поэтому реально при восстановлении данного документа пошли другим путем. В Visio был создан пустой файл-приемник. Этот файл также открыт как архив. И из восстановленного архива в новый архив переброшены папки masters, pages и файл Content_Types.xml.

Полученный файл открывается в Visio без сообщения об ошибке и содержимого оказалось достаточно для продолжения работы.

Брязгин Дмитрий Егорович
Брязгин Дмитрий Егорович

Системный аналитик с внушительным стажем. Занимаюсь разработкой дополнительных решений для Microsoft Visio с 2013 года.

Оцените автора
VisioPort
Добавить комментарий