[要][代码][Symbian解压ZIP文件]

 

void DecodeZipfile(const TDesC& aFileName)
   {
    RFsfs;
   User::LeaveIfError(fs.Connect());
    CZipFile*zipFile = CZipFile::NewL(fs, aFileName);
   // 初始化zip句柄
   CleanupStack::PushL(zipFile);
    
   //这里取得压缩包中的某个文件
   CZipFileMember* member =zipFile->CaseInsensitiveMemberL(_L("abc.txt"));
   // 得到压缩包中指定文件的句柄
   CleanupStack::PushL(member);
   
   RZipFileMemberReaderStream* stream;
   zipFile->GetInputStreamL(member, stream);
   CleanupStack::PushL(stream);
   
    //取得值
    HBufC8*buffer =HBufC8::NewLC(member->UncompressedSize());
    TPtr8bufferPtr(buffer->Des());
   User::LeaveIfError(stream->Read(bufferPtr,member->UncompressedSize()));
   
    RFilefile;
   file.Create(fs,_L("c:\\data\\uncompressed.txt"),EFileWrite);
   file.Write(buffer->Des());
   file.Close();
   
   CleanupStack::PopAndDestroy(4); // buffer, stream, member,zipFile
   fs.Close();   
    }

 

posted @ 2010-05-27 15:54  秋天的风  阅读(303)  评论(0)    收藏  举报