crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
larry
  опции профиля:
сообщение 11.7.2011, 16:38
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 55
Регистрация: 16.12.2010
Пользователь №: 2274

Спасибо сказали: 8 раз(а)




Репутация:   0  


Добрый день! Хочу попросить помощи, вот по какому вопросу...Мне необходимо архивировать файлы с вложенными каталогами...Есть один текстовый файл и папка с рисунками и мне надо получить, н-р:
архив.zip
    |-текстовый файл.txt
    |-рисунки
        |-рисунок1
        |-рисунок2


но пока не получается...Переделал пример, но он не архивирует, как надо...
Для архивирования использую QZipWriter:
int CMainWindow::archiveDir(const QString path)
{
    QZipWriter zip(path + "/dir.zip");

    if (zip.status() != QZipWriter::NoError)
        return -1;

    zip.setCompressionPolicy(QZipWriter::AutoCompress);

    QDirIterator it(path + "/temp/", QDir::Files|QDir::Dirs, QDirIterator::Subdirectories);
    
    while(it.hasNext()) 
    {
        QString file_path = it.next();
        if (it.fileInfo().isDir()) 
        {
            zip.setCreationPermissions(QFile::permissions(file_path));
            zip.addDirectory(file_path.remove(path));
        } 
        else 
            if(it.fileInfo().isFile()) 
            {
                QFile file(file_path);

                if (!file.open(QIODevice::ReadOnly))
                    continue;

                zip.setCreationPermissions(QFile::permissions(file_path));
                QByteArray ba = file.readAll();
                zip.addFile(file_path.remove(path), ba);

                file.close();
            }
    }

    zip.close();

    return 0;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 30.5.2025, 17:53