Symbian中的文件压缩(GZIP)
来源:互联网 发布:网络信号屏蔽设置 编辑:程序博客网 时间:2024/06/05 01:13
转自:http://hi.baidu.com/letsherwel/blog/item/deb91bf915352652252df286.html
接上一篇,记下如何用Symbian自带的GZip工具压缩其它文件及解压缩:
用到的类:CEZFileToGZip、CEZGZipToFile。
用法很简单-_-
//压缩 RFile nInput; //解压缩 RFile nOutput;
void CompressFileL(const TDesC& aSrcFile)
{
RFs& nFs = CCoeEnv::Static()->FsSession();
TBuf<256> nDestFile;
nDestFile.Zero();
nDestFile.Append(aSrcFile);
nDestFile.Append(_L(".gz"));
CleanupClosePushL(nInput);
TInt nRet = nInput.Open(nFs,aSrcFile,EFileRead|EFileStream);
if (nRet == KErrNone)
{
CEZFileToGZip* nFileToGz = CEZFileToGZip::NewLC(nFs,nDestFile,nInput);
while ( nFileToGz->DeflateL() )
{
;
}
CleanupStack::PopAndDestroy();
}
CleanupStack::PopAndDestroy();
}
void CNewTestAppView::DeCompressFileL(const TDesC& aSrcFile)
{
RFs& nFs = CCoeEnv::Static()->FsSession();
TBuf<256> nDestFile;
nDestFile.Zero();
nDestFile.Append(aSrcFile);
nDestFile.Append(_L(".gz")); //简单地加了后缀"gz", 偷点懒......
CleanupClosePushL(nOutput);
TInt nRet = nOutput.Replace(nFs,nDestFile,EFileWrite|EFileShareAny);
if (nRet == KErrNone)
{
CEZGZipToFile* nGzToFile = CEZGZipToFile::NewLC(nFs,aSrcFile,nOutput);
while ( nGzToFile->InflateL() )
{
;
}
CleanupStack::PopAndDestroy();
}
CleanupStack::PopAndDestroy();
}
void DeCompressDataL(const TDesC& aFileName)
{
TInt nBufferSize = 128;
HBufC8* nSrc = ReadFile(aFileName);
if (aFileName.Right(3).CompareF(_L(".gz")) == 0) //如果是"CEZFileToGZip" 压缩的文件
{
HBufC8* nTemp = nSrc->Mid(10).Alloc();
delete nSrc;
nSrc = nTemp;
}
CleanupStack::PushL(nSrc);
CBufFlat* nBufFlat = CBufFlat::NewL(nBufferSize);
CleanupStack::PushL(nBufFlat);
CBufferManager* nBufferManager = CBufferManager::NewLC(*nSrc,*nBufFlat,nBufferSize);
CEZDecompressor* decompressor = CEZDecompressor::NewLC(*nBufferManager);
while (decompressor->InflateL())
{// loop here until the file is compressed
}
HBufC *decompressedFile = HBufC::NewL(aFileName.Length()+2);
decompressedFile->Des().Format(KDecompressedFileName,&aFileName);
WriteFile(nBufFlat->Ptr(0),*decompressedFile); //将解压后的内容写文件
delete decompressedFile;
CleanupStack::PopAndDestroy(4);
}
- Symbian中的文件压缩(GZIP)
- symbian压缩和解压缩GZIP文件
- Symbian 压缩和解压缩GZIP文件
- Symbian中的数据压缩(GZIP)
- java 文件压缩 GZIP
- 压缩和解压缩GZIP文件
- JBoss中的HTTP GZIP压缩
- GZIP文件压缩的应用
- js、css文件gzip静态压缩以及gzip动态压缩
- Java zip/gzip文件压缩和解压缩
- Java zip/gzip文件压缩和解压缩
- Java IO系列(四):文件压缩GZIP、Zip
- golang tar gzip压缩,解压(含目录文件)
- GZIP压缩原理分析(04)——第三章 gzip文件格式详解(三02) gzip文件头
- 将多个文件压缩成gzip,将gzip解压成多个文件
- linux压缩解压之 gzip --可压缩目录中的文件,不同于zip
- IE6浏览器中的gzip压缩输出问题
- php curl 中的gzip压缩性能测试
- 数据持久,数据共享
- 自私和欲望是痛苦的根源么
- RESPONSE.WRITE和%=%效率分析
- STL--stack/queue的使用方法
- 开始努力 【BUPT_OJ 1000】
- Symbian中的文件压缩(GZIP)
- 对Lab颜色空间的学习(转)
- Symbian中的数据压缩(GZIP)
- SQL SERVER 的SQL语句整理
- 约瑟夫问题(POJ2746;PG1078)
- 使用C# 创建邮件发送组件(SMTP协议)
- SQL Server索引简介
- 赛孚耐:三套方案应对云安全
- Ansi,Unicode(little endian),Unicode big endian,UTF-8编码文件相互转换