Редактирование: Работа с zip архивами в Qt
Материал из Wiki.crossplatform.ru
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
- | В Qt есть не документированные классы для работы с zip архивами. Эти классы позволяют распаковывать уже существующие архивы по заданному пути, так и создавать новые архивы. Для создания используется класс '''QZipWriter''', для распаковки '''QZipReader'''. Реализация этих классов находятся по следующему пути ''qt/src/gui/text'' в файлах ''qzipreader_p.h'', ''qzipwriter_p.h'' и ''qzip.cpp'' | + | В Qt есть не документированные классы для работы с zip архивами. Эти классы позволяют распаковывать уже существующие архивы по заданному пути, так и создавать новые архивы. Для создания используется класс '''QZipWriter''', для распаковки '''QZipReader'''. Реализация этих классов находятся по следующему пути ''qt/src/gui/text'' в файлах ''qzipreader_p.h'', ''qzipwriter_p.h'' и ''qzip.cpp''. |
{{Замечание | Это приватные классы Qt, использовать на свой страх и риск. }} | {{Замечание | Это приватные классы Qt, использовать на свой страх и риск. }} | ||
+ | |||
+ | Для использования этих классов предлагаю скопировать указанные файлы в свой проект и добавить их в компиляцию. | ||
{{Замечание | Оба класса содержат встроенную в исходники документацию, которую можно прочитать для получения более подробной информации.}} | {{Замечание | Оба класса содержат встроенную в исходники документацию, которую можно прочитать для получения более подробной информации.}} | ||
- | |||
== Использование QZipWriter (создание архивов) == | == Использование QZipWriter (создание архивов) == | ||
Строка 73: | Строка 74: | ||
zip.setCompressionPolicy(QZipWriter::AutoCompress); | zip.setCompressionPolicy(QZipWriter::AutoCompress); | ||
- | QString path = QLatin1String("/path/to/dir/"); // в данном | + | QString path = QLatin1String("/path/to/dir/"); // в данном случая завершающий '/' очень важен |
QDirIterator it(path, QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot, | QDirIterator it(path, QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot, | ||
QDirIterator::Subdirectories); | QDirIterator::Subdirectories); |