Russian Qt Forum

Qt => Общие вопросы => Тема начата: AlphaGh0St от Февраль 29, 2012, 22:53



Название: Архивирование папки
Отправлено: AlphaGh0St от Февраль 29, 2012, 22:53
Всем привет!
Возник вопрос: как за архивировать папку?
Имеется папка:
Код:
C:\files\files
Содержащая файлы:
Код:
file1.txt, file2.txt, file3.txt

Необходимо за архивировать папку и получить архив (не важно rar или zip) files.zip, который содержал бы внутри себя папку files и её содержимое (файлы).

Как это можно сделать?
Благодарю.


Название: Re: Архивирование папки
Отправлено: V1KT0P от Февраль 29, 2012, 23:10
Всем привет!
Возник вопрос: как за архивировать папку?
Имеется папка:
Код:
C:\files\files
Содержащая файлы:
Код:
file1.txt, file2.txt, file3.txt

Необходимо за архивировать папку и получить архив (не важно rar или zip) files.zip, который содержал бы внутри себя папку files и её содержимое (файлы).

Как это можно сделать?
Благодарю.
На сколько я знаю в Qt пока еще нету класса для работы с архивами. Можешь либо взять одну из десятков готовых библиотек, либо же воспользоваться недокументированными классами Qt для работы с zip: http://www.wiki.crossplatform.ru/index.php/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_zip_%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%B0%D0%BC%D0%B8_%D0%B2_Qt (http://www.wiki.crossplatform.ru/index.php/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_zip_%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%B0%D0%BC%D0%B8_%D0%B2_Qt)


Название: Re: Архивирование папки
Отправлено: kambala от Март 01, 2012, 00:02
в принципе можно воспользоваться системными утилитами (zip или tar)


Название: Re: Архивирование папки
Отправлено: AlphaGh0St от Март 01, 2012, 00:03
Цитировать
Можешь либо взять одну из десятков готовых библиотек, либо же воспользоваться недокументированными классами Qt для работы с zip
Библиотек много, но какой именно лучше всего воспользоваться?
Если использовать класс QZipWriter, предложенный вами, то появляется небольшая проблема: в файле qzip.cpp подключается библиотека zlib.h. Компилятор жалуется, что библиотека не найдена.
Решение, предложенное здесь
http://www.forum.crossplatform.ru/index.php?showtopic=6270&st=10 (http://www.forum.crossplatform.ru/index.php?showtopic=6270&st=10)
не подходит, такого пути даже нет.
Код:
Qt Creator 2.4.1 
Основан на Qt 4.7.4 (32-х битной)
Как можно решить эту проблему?

Цитировать
в принципе можно воспользоваться системными утилитами (zip или tar)
а как ими воспользоваться?


Название: Re: Архивирование папки
Отправлено: AlphaGh0St от Март 01, 2012, 00:15
Проблема с не найденной библиотекой решена.
Скачал Zlib for Windows от сюда
http://gnuwin32.sourceforge.net/packages/zlib.htm (http://gnuwin32.sourceforge.net/packages/zlib.htm)

Затем нашёл в скачанном архиве файлы zlib.h и zconf.h, скопировал в папку проекта, добавил в проект, и всё заработало.

Всем спасибо за помощь!


Название: Re: Архивирование папки
Отправлено: andrew.k от Март 01, 2012, 00:28
можно еще использовать QuaZip (http://quazip.sourceforge.net/)


Название: Re: Архивирование папки
Отправлено: kambala от Март 01, 2012, 00:40
Цитировать
в принципе можно воспользоваться системными утилитами (zip или tar)
а как ими воспользоваться?
запустить консоль и ввести "man <команда>" или "<команда> -h" (без кавычек) :) например, чтобы заархивировать папку data в файл data.zip в текущем каталоге, необходимо выполнить "zip -r data data"


Название: Re: Архивирование папки
Отправлено: V1KT0P от Март 01, 2012, 01:08
Цитировать
в принципе можно воспользоваться системными утилитами (zip или tar)
а как ими воспользоваться?
запустить консоль и ввести "man <команда>" или "<команда> -h" (без кавычек) :) например, чтобы заархивировать папку data в файл data.zip в текущем каталоге, необходимо выполнить "zip -r data data"
А как же кроссплатформенность?


Название: Re: Архивирование папки
Отправлено: kambala от Март 01, 2012, 04:36
zip кроссплатформенный вроде как


Название: Re: Архивирование папки
Отправлено: Bepec от Март 01, 2012, 07:08
Под виндой "zip" нетути ;) Эт так, напоминание для линуксоидов.


Название: Re: Архивирование папки
Отправлено: BRE от Март 01, 2012, 07:32
Под виндой "zip" нетути ;) Эт так, напоминание для линуксоидов.
http://gnuwin32.sourceforge.net/packages/zip.htm


Название: Re: Архивирование папки
Отправлено: Bepec от Март 01, 2012, 07:33
Вот вот, что он идёт как доп ПО ;) А так под виндой его - нетути :)


Название: Re: Архивирование папки
Отправлено: BRE от Март 01, 2012, 07:38
Вот вот, что он идёт как доп ПО ;) А так под виндой его - нетути :)
Да, под вендой в принципе вообще ничего нет, пичаль.


Название: Re: Архивирование папки
Отправлено: andrew.k от Март 01, 2012, 07:39
QuaZip это не кросплатформенность?


Название: Re: Архивирование папки
Отправлено: Пантер от Март 01, 2012, 07:42
Вот вот, что он идёт как доп ПО ;) А так под виндой его - нетути :)
Можно таскать с собой.


Название: Re: Архивирование папки
Отправлено: Bepec от Март 01, 2012, 08:09
Тогда это решение ни чем не лучше и не кроссплатформеннее, чем Qt класс ;)