The code below depicts how the source file "input.doc" file is converted to target file "output.gz".
/*
* If input and output file names are not specified then it is assumed that
* the file names are contained in a provided .ini file.
*/
void CEZlibEZipTests::DoEZlibGZipDeflateL()
{
RFs iFs;
iFS.connect();
//Open the source file in read mode
_LIT(KInputFileLocation, "c:\\private\\E80000B7\\zip\\input\\input.doc");
TFileName inputFile(KInputFileLocation);
RFile input;
err = input.Open(iFS, inputFile, EFileStream | EFileRead | EFileShareExclusive);
if(err != KErrNone)
{
INFO_PRINTF1(KOpenFileError);
User::Leave(err);
}
//create a target file
_LIT(KOutputFileLocation, "c:\\private\\E80000B7\\zip\\input\\output.gz");
TFileName outputFile(KOutputFileLocation);
CEZFileToGZip *compressor = CEZFileToGZip::NewLC(iFs, outputFile, input);
while(compressor->DeflateL())
{
}
input.Close();
iFS.Close();
}
The decompression of a gzip file can be achieved through the following the steps:
Pass the file to the constructor of the CEZGZipToFile class.
CEZGZipToFile::InflateL() is called repeatedly to complete the decompression.
The code below depicts how "output.gz" is decompressed to "input.doc".
/*
* If input and output file names are not specified then it is assumed that
* the file names are contained in a provided .ini file.
*/
void CEZlibEZipTests::DoEZlibGZipInflateL()
{
RFs iFs;
iFS.connect();
//open output file
_LIT(KOutputFile, "c:\\private\\E80000B7\\zip\\input\\input.doc");
TFileName outputFile(KOutputFile);
RFile output;
err = output.Replace(iFs, outputFile, EFileStream | EFileWrite | EFileShareExclusive);
if(err != KErrNone)
{
INFO_PRINTF1(KCreateFileError);
User::Leave(err);
}
//input file
_LIT(KInputFileLocation, "c:\\private\\E80000B7\\zip\\input\\output.gz");
TFileName inputFile(KInputFileLocation);
CEZGZipToFile *decompressor = CEZGZipToFile::NewLC(iFs, inputFile, output);
while(decompressor->InflateL())
{
}
output.Close();
iFS.Close();
;
}
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.