关于CEZFileToGZip的问题

来源:百度文库 编辑:神马文学网 时间:2024/04/29 06:34:11
关于CEZFileToGZip的问题binghe2000
2005-09-28, 11:51
我尝试使用CEZFileToGZip去压缩一个文件:
_LIT(KDirName,"C:\\epoc32ex\\data\\");
_LIT(KFileName,"C:\\epoc32ex\\data\\WriteToFile.dat");
_LIT(KDesFileName,"C:\\epoc32ex\\data\\WriteToFile.gz");
RFs fsSession;
User::LeaveIfError(fsSession.Connect()); // connect session
fsSession.SetSessionPath( KDirName );
RFile SouFile;
TInt ORet = SouFile.Open( fsSession, KFileName, EFileRead|EFileStreamText|EFileShareExclusive );
TInt FileSize;
ORet = SouFile.Size( FileSize );
CEZFileToGZip * pFileGZip = CEZFileToGZip::NewLC( fsSession, KDesFileName, SouFile, FileSize*2 + 10 );
TBool Ret = pFileGZip->DeflateL();
CleanupStack::PopAndDestroy(); //clean for pFileGZip;
SouFile.Close();
fsSession.Close();
结果在CEZFileToGZip::NewLC中生成了一个10 bytes的文件(gzip的文件头).
在执行DeflateL() 时return true但结果文件中并没有生成源文件的压缩数据.
请问是什么原因呢?
r60600
2005-09-28, 15:07
“C:\\epoc32ex\\data\\WriteToFile.dat”这个文件是否一个空文件?
r60600
cool_li
2005-09-28, 17:43
估计是文件路径错误!!!
cool_li
binghe2000
2005-09-30, 03:35
“C:\\epoc32ex\\data\\WriteToFile.dat”这个文件是否一个空文件?
r60600
不是一个空文件,是一个内容为"abcabc"的文件.
生成的目标文件是10 bytes的文件.我比较过用java生成的目标文件, 这10 bytes字节的内容是gzip的文件头.用CEZFileToGZip生成的目标文件缺少了源文件的压缩内容和gzip的文件尾.
binghe2000
2005-09-30, 03:36
估计是文件路径错误!!!
应该不是文件路径的问题, 因为有目标文件生成.
Cxt_programmer
2007-06-13, 08:00
while ( pFileGZip->DeflateL() );
要这样压缩。