void QuaZipEx::recurseAddDir(QDir d, QStringList & list) { QStringList qsl = d.entryList(QDir::NoDotAndDotDot | QDir::Dirs | QDir::Files); foreach (QString file, qsl) { QFileInfo finfo(QString("%1/%2").arg(d.path()).arg(file)); if (finfo.isSymLink()) return; if (finfo.isDir()) { QString dirname = finfo.fileName(); QDir sd(finfo.filePath()); recurseAddDir(sd, list); } else list << QDir::toNativeSeparators(finfo.filePath()); }
bool Zip::archive(const QString &filePath, const QDir &dir, const QString &comment) { QuaZip zip(filePath); if (!zip.open(QuaZip::mdCreate)) { return false; } if (!dir.exists()) { return false; } QFile inFile; QStringList sl; recurseAddDir(dir, &sl); QFileInfoList files; foreach (QString fn, sl) { files << QFileInfo(fn); }