Распаковка каталога в C ++ - PullRequest
       39

Распаковка каталога в C ++

1 голос
/ 04 августа 2009

Я создаю программу на C ++, которая будет читать простой текст .docx. Мой план атаки - переименовать .docx в .zip, а затем разархивировать. Затем я переименую файл .xml, содержащий текст документа, в формат .txt и проанализирую его.

Прямо сейчас я понял, что переименование было достаточно простым. Я сейчас борюсь с расстегиванием молнии. Я очень хорошо разбираюсь в C ++, но я впервые расширяю свои возможности на приложения для работы с настоящими словами и использую их за пределами библиотеки STL.

Сначала я попробовал множество оболочек для C ++ из библиотеки zlib, но не смог заставить ни одну из них скомпилировать или работать должным образом (это может быть связано с окружением в Cygwin). По этой причине мне кажется, что по умолчанию я должен использовать грязный код zlib для этого. Но из всей документации и примеров, которые я могу найти, видно, что zlib используется только для чтения .zip, который представляет собой сжатие одного файла, а не нескольких файлов. Теперь я не знаю, куда идти дальше, и, как я уже говорил ранее, будучи совершенно новым для домена за пределами STL, я чувствую себя совершенно растерянным.

Любая помощь или руководство очень ценится!

Спасибо, Michael

Ответы [ 3 ]

1 голос
/ 04 августа 2009

Я не думаю, что zlib напрямую поддерживает многофайловые архивы (может быть ошибочным), поэтому вы можете искать альтернативы. Кроме того, вы можете также подумать о переходе с cygwin на MinGW , если только вам не нужна совместимость с POSIX / UNIX, которую обеспечивает cygwin.

1 голос
/ 04 августа 2009

Я имел дело с подобной проблемой, но пока не нашел отличного решения.

zlib в настоящее время не поддерживает несколько файлов.

См .: C / C ++ Упаковка и сжатие

1 голос
/ 04 августа 2009

zlib для сжатия GZip, а не сжатия ZIP ( см. Подробности ).

В результате вам, возможно, будет лучше использовать утилиту unzip, предоставляемую в Cygwin и доступную для множества платформ .

...