This method packs list of files :
bool MyPacker
::packFiles( QString zip_name, QFileInfoList files
) {
QuaZip( zip_name );
zip.setFileNameCodec("Windows-1250");
if( !zip.open( QuaZip::mdCreate ) )
{
}
QuaZipFile outFile(&zip);
char c;
int j = 0;
{
if (!fileInfo.isFile())
continue;
inFile.setFileName( fileInfo.absoluteFilePath() );
{
}
if (!outFile.
open(QIODevice::WriteOnly, QuaZipNewInfo
(fileInfo.
fileName(), fileInfo.
filePath()))) {
}
while (inFile.getChar(&c) )
outFile.putChar(c));
if (outFile.getZipError() != ZIP_OK)
{
return false;
}
outFile.close();
if (outFile.getZipError() != ZIP_OK)
{
return false;
}
inFile.close();
}
zip.close();
if (zip.getZipError() != 0)
{
return false;
}
return true;
}
bool MyPacker::packFiles( QString zip_name, QFileInfoList files )
{
QuaZip( zip_name );
zip.setFileNameCodec("Windows-1250");
if( !zip.open( QuaZip::mdCreate ) )
{
return QString();
}
QFile inFile;
QuaZipFile outFile(&zip);
char c;
int j = 0;
foreach(QFileInfo fileInfo, files)
{
if (!fileInfo.isFile())
continue;
inFile.setFileName( fileInfo.absoluteFilePath() );
if (!inFile.open(QIODevice::ReadOnly))
{
return QString();
}
if (!outFile.open(QIODevice::WriteOnly, QuaZipNewInfo(fileInfo.fileName(), fileInfo.filePath())))
{
return QString();
}
while (inFile.getChar(&c) )
outFile.putChar(c));
if (outFile.getZipError() != ZIP_OK)
{
return false;
}
outFile.close();
if (outFile.getZipError() != ZIP_OK)
{
return false;
}
inFile.close();
}
zip.close();
if (zip.getZipError() != 0)
{
return false;
}
return true;
}
To copy to clipboard, switch view to plain text mode
Bookmarks