![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
igor_bogomolov |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Написал небольшую заметку в wiki по работе с zip архивами в Qt.
Цитата В Qt есть не документированные классы для работы с zip архивами. Эти классы позволяют распаковывать уже существующие архивы по заданному пути, так и создавать новые архивы. Для создания используется класс QZipWriter, для распаковки QZipReader. Реализация этих классов находятся по следующему пути qt/src/gui/text в файлах qzipreader_p.h, qzipwriter_p.h и qzip.cpp. Продолжение Link... |
|
|
![]() |
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
круто ) Одним головняком меньше, если что))
|
|
|
ufna |
![]()
Сообщение
#3
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
А они разве есть в Qt 4.7 ? Давно сий финт юзаю, помнится даже в 4.6.х какой-то уже не было.
|
|
|
Алексей1153 |
![]()
Сообщение
#4
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
ufna, я глянул щас - есть. У меня Qt 4.7.0
|
|
|
ufna |
![]()
Сообщение
#5
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
Видимо в какой-то из промежуточных косяк был, я из-за этого отказался от использования.
|
|
|
igor_bogomolov |
![]()
Сообщение
#6
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(ufna @ 13.1.2011, 22:57) Link А они разве есть в Qt 4.7 ? Давно сий финт юзаю, помнится даже в 4.6.х какой-то уже не было. Эти классы появились с версии Qt4.5. Используются для поддержки ODF формата, Так что пропасть эти классы не могли и не могут ![]() Тем более я предлагаю не подключать эти файлы как есть (под Linux это и не получится), а заимствовать их в свой проект. |
|
|
Rocky |
![]()
Сообщение
#7
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
А как нужно правильно заинклудить хидеры qzipreader_p.h и qzipwriter_p.h?
Если писать так
то QtCreator их не видит... А вот так:
недолговечно... ------------ UPD Все, понятно. Включать их вообще безсмысленно (таким образом). ------------ UPD Включил 3 zip-файла в проект, но gcc ругается что не может найти zlib. Сам файл находится тут. qt/src/3rdparty/zlib. cmake я не использую. В проекте пытаюсь указать директорий включения так:
QTDIR в переменных среды сборки в Qt Creator указана как /home/evgeny/qtsdk-2010.05/qt. Результат - все равно не видит zlib.h. А если задать полный путь, то все ок. Как это можно побороть? Т.е. я так понимаю QTDIR не разворачивается чтоли?( Сообщение отредактировал Rocky - 19.1.2011, 10:06 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Rocky @ 19.1.2011, 11:27) Link Если писать так а как ты свои заголовочники подключаешь?
|
|
|
Rocky |
![]()
Сообщение
#9
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Чисто свои по относительному пути:
Qt
А эти, zip, я создал директорий Zip, добавил туда 3 файла, qzipreader_p.h, qzipwriter_p.h, qzip.cpp и подключаю так:
|
|
|
igor_bogomolov |
![]()
Сообщение
#10
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Rocky, попробуй так
|
|
|
Rocky |
![]()
Сообщение
#11
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Да, спасибо, помогло ))
|
|
|
Winand |
![]()
Сообщение
#12
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 19.2.2012 Пользователь №: 3226 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
В qt 4.8 qzip.cpp:420
mode получается равен нулю, хотя external_file_attributes[0]=32 для файлов, 16 для директорий. В итоге файлы не определяются файлами и не распаковываются. Дальше я пока не разобрался |
|
|
Алексей1153 |
![]()
Сообщение
#13
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Winand, 3210==1000002 , поэтому неудивительно, что при сдвиге этого числа на 16 битов вправо получается 0
но дело вообще не в этом. А вот в этом: const quint32 mode = (qFromLittleEndian<quint32>(&header.h.external_file_attributes[0]) >> 16) & 0xFFFF; зачем берётся адрес |
|
|
Ov3r1oad |
![]()
Сообщение
#14
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 21.12.2011 Пользователь №: 3085 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вот использую кусок кода в точности такой же как в статье, но почему в архиве создаются (помимо самих файлов и папок) файлы размером 0 bytes с именем папок. Никто не знает, в чем причина?
|
|
|
Гость_Бублик_* |
![]()
Сообщение
#15
|
Гости ![]() |
А ни у кого не было проблемы при использования QZipReader?
В чем может быть беда? |
|
|
Алексей1153 |
![]()
Сообщение
#16
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
файлы в проект не подключены
|
|
|
Гость_Бублик_* |
![]()
Сообщение
#17
|
Гости ![]() |
Цитата(Алексей1153 @ 20.11.2012, 17:30) Link файлы в проект не подключены Подключены. |
|
|
Алексей1153 |
![]()
Сообщение
#18
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
поищи в тырнете по строке ": undefined reference to `_imp___ZN10QZipReaderC1EP9QIODevice'"
к примеру, тут вот советуют Link
Сообщение отредактировал Алексей1153 - 21.11.2012, 7:59 |
|
|
Гость_Flatus_* |
![]()
Сообщение
#19
|
Гости ![]() |
Цитата(Бублик @ 20.11.2012, 15:14) Link А ни у кого не было проблемы при использования QZipReader?
В чем может быть беда? В файле *.pro :
В исходнике подклчать заголовочные файлы как:
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.8.2025, 4:57 |