Russian Qt Forum
Октябрь 01, 2024, 14:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с zip  (Прочитано 5077 раз)
merke
Гость
« : Июнь 28, 2011, 16:12 »

Ребят, всем привет!

Очень нужно заархивировать файлы в zip архив. Помогите какие готовые либы использовать?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июнь 28, 2011, 16:23 »

В поиск. На днях как раз поднималась данная тема.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
NortT
Гость
« Ответ #2 : Июнь 28, 2011, 17:31 »

Сначала я http://code.google.com/p/osdab использовал, сейчас QZip. На несколько тем ниже есть обсуждение Qzip'a/
Записан
merke
Гость
« Ответ #3 : Июнь 28, 2011, 18:09 »

В .pro файле прописал INCLUDEPATH += %QTDIR%/src/gui/text

Добавил инклуды

#include "qzipwriter_p.h"
#include <qzip.cpp>

Выдает ошибку C:\Qt\2010.05\qt\src\gui\text\qzip.cpp:54: ошибка: zlib.h: No such file or directory

Эт чтож zlib ещё таскать?
Записан
merke
Гость
« Ответ #4 : Июнь 28, 2011, 18:54 »

Вобщем решил проблема так:

pro файл:


Код
C++ (Qt)
#-------------------------------------------------
#
# Project created by QtCreator 2011-06-28T21:01:57
#
#-------------------------------------------------
 
QT       += core
 
QT       -= gui
 
INCLUDEPATH += $$[QT_INSTALL_PREFIX]/src/3rdparty/zlib
INCLUDEPATH += $(QTDIR)/src/gui/text
 
TARGET = ddd4
CONFIG   += console
CONFIG   -= app_bundle
 
TEMPLATE = app
 
 
SOURCES += main.cpp
 

main.cpp


Код
C++ (Qt)
#include <QtCore/QCoreApplication>
#include "qzipreader_p.h"
#include "qzipwriter_p.h"
#include <qzip.cpp>
#include <QFile>
 
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
 
   QZipWriter zip("C:/file.zip"); // создаем файл
   //zip.addDirectory("directory"); // добавляется пустая папка в zip архив с именем directory
 
   //в созданную папку "directory" предыдущей командой мы добавляем файл file.ext.
   //При этом мы сами должны открыть файл file.ext через QFile, прочитать все содержимое и передать как QByteArray в эту функцию
 
   QFile file("C:/IMG_0239.JPG");
   file.open(QIODevice::ReadOnly);
   QByteArray myByteArray;
   myByteArray = file.readAll();
   zip.addFile("IMG_0239.JPG", myByteArray);
 
   QFile file2("C:/index.html");
   file2.open(QIODevice::ReadOnly);
   QByteArray myByteArray2;
   myByteArray2 = file2.readAll();
   zip.addFile("test.html", myByteArray2);
 
   zip.close();
 
   return a.exec();
}
 
« Последнее редактирование: Июнь 28, 2011, 18:59 от Александр » Записан
merke
Гость
« Ответ #5 : Июнь 28, 2011, 18:55 »

И вопрос прога будет архивировать на других компах где не уставлен Qt?
Записан
Whiplash
Гость
« Ответ #6 : Июнь 29, 2011, 08:44 »

Я непосредственно zlib использую, про QZip не знал даже...
Будет архивировать, если zlib1.dll будешь с собой таскать.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.105 секунд. Запросов: 22.