void CMyClass::Compress(const TDesC aFileName, TInt aCompressionMethod)
{
TInt compressionMethod = 0;
if(aCompressionMethod == 0)
compressionMethod = Z_DEFAULT_COMPRESSION;
else if(aCompressionMethod == 1)
compressionMethod = Z_NO_COMPRESSION;
else if(aCompressionMethod == 2)
compressionMethod = Z_BEST_SPEED;
else if(aCompressionMethod == 3)
compressionMethod = Z_BEST_COMPRESSION;
else
compressionMethod = Z_DEFAULT_COMPRESSION;
TBuf<256> target;
target.Copy(aFileName);
target.Append(_L(".gz"));
iFs->SetSessionPath(path);
RFile problemFile;
TInt fileSize;
problemFile.Open(*iFs, aFileName,EFileRead|EFileWrite|EFileShareAny|EFileStreamText);
problemFile.Size(fileSize);
HBufC8* tempBufferPtr = HBufC8::NewLC(fileSize);
TPtr8 unCompressed( tempBufferPtr->Des());
problemFile.Read(unCompressed);
HBufC8* iCompressed=HBufC8::NewLC(fileSize * 2); TPtr8 ptrCompressed=iCompressed->Des();
CEZCompressor* iCompressor=CEZCompressor::NewLC(*this, compressionMethod);
TRAPD(err, iCompressor->CompressL(ptrCompressed,unCompressed));
if(err == KErrNone)
{
problemFile.Close();
if((problemFile.Replace(*iFs,target,EFileWrite))==KErrNone )
{
problemFile.Write(ptrCompressed);
}
}
else
{
}
problemFile.Close();
CleanupStack::PopAndDestroy(3);
}