bool CZipper::pack_prepared() { if (archive_fullpath.isEmpty()) return false; QString zipname (archive_fullpath); QuaZip zip (zipname, settings->value ("zip_charset_out", "UTF-8").toString().trimmed()); if (! zip.open (QuaZip::mdCreate)) return false; QFile inFile; QuaZipFile outFile (&zip); foreach (QString fi, files_list) { QFileInfo file (fi); if (! file.isFile()) continue; inFile.setFileName (file.absoluteFilePath()); if (! inFile.open (QIODevice::ReadOnly)) return false; QString outfname (archive_name); outfname.append ("/").append (file.fileName()); if (! outFile.open (QIODevice::WriteOnly, QuaZipNewInfo (outfname, inFile.fileName()))) return false; QByteArray ba = inFile.readAll(); outFile.write (ba); outFile.close(); if (outFile.getZipError() != UNZ_OK) return false; inFile.close(); emit new_iteration (file); }