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但结果文件中并没有生成源文件的压缩数据.
请问是什么原因呢?
_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但结果文件中并没有生成源文件的压缩数据.
请问是什么原因呢?