转自:http://hi.baidu.com/letsherwel/blog/item/5ebf71ded4d4c953cdbf1a7c.html
用到的类:CEZCompressor、CEZDecompressor、MEZBufferManager、CEZZStream和CBufFlat。
//压缩
CBufFlat* Compress(const TDesC8& aData)
{
CBufFlat* nOutBuf = CBufFlat::NewL(128);
CBufferManager* nBufferManager = CBufferManager::NewLC(aData,*nOutBuf, 128);
CEZCompressor* compressor = CEZCompressor::NewLC(*nBufferManager, CEZCompressor::EBestCompression);
while (compressor->DeflateL())
{// loop here until the file is compressed
}
CleanupStack::PopAndDestroy(2); //compressor,nBufferManager
nOutBuf->Compress();
return nOutBuf;
}
CBufFlat* DeCompress(const TDesC8& aData)
{
CBufFlat* nOutBuf = CBufFlat::NewL(128);
CBufferManager *nBufferManager = CBufferManager::NewLC(aData,*nOutBuf,128);
CEZDecompressor *decompressor = CEZDecompressor::NewLC(*nBufferManager);
while (decompressor->InflateL())
{// loop here until the file is decompressed
}
CleanupStack::PopAndDestroy(2); //decompressor,bufManager
return nOutBuf;
}
其中“CBufferManager”继承自“MEZBufferManager”,该类的源代码如下:
|