Symbian OS 程序中如何操作 Zip 文件

塞班助手v2.2007.zip 塞班助手v2.2007.zip 用于塞班手机刷机,功能类似凤凰刷机软件,可强刷。 立即下载
Symbian OS 程序中如何操作 Zip 文件。

如今最普遍的压缩文件格式就要算ZIP了,它最开始是Phil Katz借鉴ARC格式创建的。Symbian OS提供了一个名为CzipFile的类来读取ZIP文件,它从Symbian 7.X开始被支持。这篇文章将告诉你如何使用CzipFile并给出一个例子。你可以在Series 60 2.x or UIQ 2.x环境下编译,运行这个例子。
虽然SDK文档中有CzipFile的介绍,但还是远远不够的,并且没有例子告诉你如何使用它,这也是我写这篇文章的原因。希望它对你有所帮助。
一、读取ZIP文件
我们以一种简单的情况开始:打开ZIP文件并显示其内部所有文件的信息。首先,我们需要创建一个新的CzipFile 实例。下面是你可以使用的已封装好的两阶段构造函数:

CZipFile* zipFile = CZipFile::NewL(fileSession, aCompressedFile);
CleanupStack::PushL(zipFile);

构造函数的第一个参数是文件服务器的会话,第二个参数是ZIP文件的名字。
下面,我们要得到ZIP文件的迭代器(iterator)来遍历其中的文件,可以通过调用CZipFile::GetMembersL()实现,它返回一个CzipFileMemberIterator类的实例。

CZipFileMemberIterator* members = zipFile->GetMembersL();
CleanupStack::PushL(members);

注意member的所有权已传递到调用者,因此我们在使用完之后需要删除它。
现在,我们怎么得到每一个文件的实例呢?可以调用CZipFileMemberIterator::NextL()进行遍历直到它返回0为止(返回0意为着没有文件了)。看下面的代码:

CZipFileMember* member;
while ((member = members->NextL()) != 0)
{
console->Printf(
KInfoMessage,
member->Name(),
member->CompressedSize(), member->UncompressedSize());

delete member;

}

上面的代码打印了ZIP文件中所有文件的名字,压缩后的大小和未压缩的大小。再次注意我们需要删除member,因为我们已经是它的拥有者了。
最后,别忘了释放我们分配的任何资源:

CleanupStack::PopAndDestroy(); // members
CleanupStack::PopAndDestroy(); // zipFile

如果我们有一个含有3个文件的ZIP文件,例如:Example.txt, Example.dat and Example.png。程序的输出就像下面这样(你可以在文章的最后下载这个例子):

Example.txt - 11 - 11
Example.dat - 15 - 180
Example.png - 4393 – 4393

二、从ZIP文件中提取文件
这段将展示如何从ZIP文件中提取文件。和前面的例子一样,第一步需要创建CzipFile的实例:

CZipFile* zipFile = CZipFile::NewL(fileSession, aCompressedFile);
CleanupStack::PushL(zipFile);

这里我们不再需要一个迭代器,因为我们对一个指定的文件感兴趣,需要调用的方法是CZipFile::CaseInsensitiveMemberL()。这个方法需要一个你想访问文件的名字做为参数:

CZipFileMember* member = zipFile->CaseInsensitiveMemberL(aFileName);
CleanupStack::PushL(member);

下面这步将得到输入流并使用Read()方法提取文件,ZIP文件中的文件输入流使用RzipFileMemberReaderStream类,得到输入流的方法是调用CZipFile::GetInputStreamL():

RZipFileMemberReaderStream* stream;
zipFile->GetInputStreamL(member, stream);
CleanupStack::PushL(stream);

下面的代码展示如何读取文件,在读文件之前,代码分配了一个文件未压缩大小的buffer(member->UncompressesedSize() )用来存储文件。

HBufC8* buffer = HBufC8::NewLC(member->UncompressedSize());
TPtr8 bufferPtr(buffer->Des());
User::LeaveIfError(stream->Read(bufferPtr, member->UncompressedSize()));

如果你的文件很大,不要像上面那样通过一次Read()读取所有数据,它会阻塞你的程序。可以通过一个活动对象一块块的读取数据代替上面的方法。例子中使用一次Read()只是为了演示的简单性。
现在我们把文件读到了一个buffer中,你可以立刻使用它,或者选择以文件的形式保存。下面的代码把它保存到文件:

RFile file;
User::LeaveIfError(file.Replace(fileSession, fileName, EFileWrite));
CleanupClosePushL(file);
User::LeaveIfError(file.Write(*buffer));
fileSession.Close();

最后,别忘了释放所有分配的资源:

CleanupStack::PopAndDestroy(5); // file, buffer, stream, member, zipFile

三、例子
例子完成两件事:
1. 显示Example.zip文件中所有的文件的信息。它在IteratorExampleL()函数中实现。
2. 从Example.zip中提取Example.txt并保存到设备的c:dataExample.txt。它在ExtractionExampleL()函数中实现。

下载地址:
http://www.antonypranata.com/articl.../ZipExample.zip
Android 集成Chrome 浏览器内核 Crosswalk Crosswalk 内核的兴起与消亡 Android 4.4 版本之前,使用的是基于 androidWebKit 的 WebView 但实际上,由于 Android 的碎片化问题(大量存在不同的 Android 系统版本,并且各个厂商对内置应用进行定制化,有可能用的不是最新的浏览器内核)。这就导致 WebView 在真实环境中对 API 的支持根本无迹可寻,越发混乱。 随着混合开发的兴起,前端对 ... 阅读详情

相关推荐

Revit Dynamo实战:用Excel数据批量生成桥梁模型(附自适应族技巧)

本文详细介绍了如何利用Revit Dynamo结合Excel数据实现桥梁参数化建模,重点讲解了数据驱动建模、自适应族优化及大型项目性能管理三大核心技巧。通过结构化Excel数据、高级自适应族创建和分块处理策略,显著提升桥梁建模效率与设计变更响应能力。

weixin_42520025的博客 387

Symbian Zip解压问题

Symbian提供了解压ZIP的API,调用可以解压文件。如果知道zip文件中有什么文件,调用api进行解压还马马虎虎。 在实际应用中,如果需要解压某个zip文件,往往不知道这个压缩包中有些什么东西,但要求全部解压出来,这就不太好办了。 其实也可以把zip压缩包中的文件的文件

431

图解“交易·支付·清结算·账务”全局

这个过程大致是这样的,用户先到平台选择喜欢的“餐品”,然后“下单”,生成交易“账单”,用户选择支付方式进行“支付”,支付成功后平台要履行承诺把餐送到,“履约”完成以后平台就开始进行各方利益的“清分”,计算清楚应给谁多少钱,并“记账”,最后将款项“结算”给商家,这个过程如图7所示。交易系统请求订单系统创建订单,因为不清楚平台和商家之间的清结算协议,所以暂且认为所有优惠由平台提供给用户,后续平台再基于协议跟商家之间做优惠的分摊,将上述商品、优惠、计价等信息集成到一起,就得到了完成的订单信息了,如表4所示。

wjianwei666的专栏 1万+

在Symbian OS中读取ZIP文件

在Symbian OS中读取ZIP文件       [ 原著:Antony Pranata http://www.antonypranata.com ]          [译:Beover1984 beover1984@163.com]如今最普遍的压缩文件格式就要算ZIP了,它最开始是Phil Katz借鉴ARC格式创建的。Symbian OS提供了一个名为CzipFil

Beover1984(摇滚人生)的专栏 2124

不用Root!这些隐藏代码能一键开启安卓诊断端口(小米/OPPO/魅族机型实测)

本文提供了一份无需Root权限即可开启安卓手机诊断端口的实用指南。通过拨号盘输入特定隐藏代码,小米、OPPO、魅族等机型的用户可以一键激活此工程模式,从而连接电脑进行基带数据备份(如QCN文件)或故障排查。文章详细列出了各品牌指令、操作验证步骤,并强调了备份IMEI等关键数据的重要性与操作风险,旨在帮助用户在紧急情况下修复网络问题。

weixin_29260291的博客 273

python零基础入门到精通,python入门到精通教程

坚持到了这儿,恭喜你,表示你有做开发的潜力,其实我想说的上面的内容还是刚刚开始,刚开始大家不需要多么精通了解这些内容,除了Python方面的知识,每个部分掌握一点儿能进行基本开发就好,主要是不断练习,让自己跳出「舒适区」,进入「学习区」,但是又不进入「恐慌区」,不断给自己「喂招」。上述这份完整版的Python全套学习资料已经上传优快云官方,朋友们如果需要可以扫描下方二维码免费获取【保证100%免费】

YYmmsss的博客 3443

Symbian OS Communications Programming

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.youkuaiyun.com/topmvp - topmvpAn up-to-date insight into Communications programming at Symbian, incorporating changes introduced by the lat

TopMVP 469

树莓派4B学习笔记一

树莓派4b烧录Ubuntu20.04&&配置Ubuntu桌面

m0_55202222的博客 3641

symbian s60 将一个带有目录的zip文件解压到指定目录

http://www.newlc.com/en/Reading-ZIP-File-in-Symbian-OS.htmlNewLc上有个zip例子能够遍历和从一个包里面解压一个文件出来。我稍微整理了一下实现一个带有目录的zip文件解压到指定目录。//Add by windcaoLOCAL_C void ExtractionAllL(RFs& aFileSession, CZipFil

先得道,后求术 1457

【日常小结】项目Modbus RTU 协议

Modbus RTU(远程终端) 协议 一、前言 最近因为码跺宽度测量项目推广升级,更换了摄像头(换成了基恩士摄像头)和光栅(换成了施莱格05LCM系列光栅),导致原来的程序用不了了,然而这个软件升级的任务落到了我身上,作为机械非科班出身的我要学习TCP和Modbus RTU通信协议,也算是自我突破了。本文只对Modbus/RTU/HEX 进行简单的小结。 二、Modbus Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻

weixin_39681471的博客 831

Linux云服务器上搭建《僵尸毁灭工程》私服全流程指南(避坑版)

本文详细介绍了在Linux云服务器上搭建《僵尸毁灭工程》私服的全流程指南,包括环境准备、SteamCMD安装、游戏服务器部署、内存优化配置及高级调优技巧。特别针对常见问题提供解决方案,帮助玩家快速搭建稳定的私服环境。

solidity8miner的博客 602

如何在Symbian下读取ZIP文件?

<br />如何在Symbian下读取ZIP文件?(2010-01-11 13:21:19)转载标签:zip压缩文件symbian读取it分类:技术分享   如今最普遍的压缩文件格式就要算ZIP了,它最开始是Phil Katz借鉴ARC格式创建的。Symbian OS提供了一个名为CZipFile的类来读取ZIP文件,它从Symbian 7.X开始被支持。这篇文章将告诉你如何使用CzipFile并给出一个例子。你可以在Series 60 2.x or UIQ 2.x环境下编译,运行这个例子。 <br />

jimmy54的专栏 384

STM32实战开发(133):基于STM32的智能GPS定位跟踪系统开发

本文详细介绍了如何基于STM32开发一个智能GPS定位跟踪系统。系统使用NEO-6M GPS模块获取实时定位数据,并通过SIM800L GPRS模块将定位信息上传到远程服务器。通过OLED屏幕实时显示位置数据,使用SD卡存储历史轨迹,并提供蜂鸣器报警功能。项目实现了GPS定位数据的获取、解析、存储和传输,为智能定位系统提供了完整的解决方案。

2201_76125393的博客 1643

Symbian解压缩Zip包的方法

转载自 http://discussion.forum.nokia.com/forum/showthread.php?t=70826 在Symbian OS中读取ZIP文件[ 原著:Antony Pranata http://www.antonypranata.com ][译:Beover1984 beover1984@163.com]如今最普遍的压缩文件格式就要算ZIP了,它最开始是Ph

netlcx的专栏 1735

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

生成适用symbian 的gloox.lib库文件

环境需求:<br />Symbian SDK:S60_3rd_FP2_SDK_v1.1 <br />IDE : carbide 2.7<br />Perl :ActivePerl-5.6.1.635-MSWin32-x86.msi<br />Open C/C++ 插件: s60_open_c_cpp_plug_in_v1_7_en.zip<br /> <br />Gloox api代码包:  gloox1.0<br /> <br /> Gloox.lib`文件生成过程<br /> <br />1 下载一下各

warren的专栏 934

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Symbian OS C++ for Mobile Phones

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.youkuaiyun.com/topmvp - topmvpThis latest edition provides you with the tools to become an effective Symbian OS developer and offers a deep

TopMVP 790

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

The Symbian OS Architecture Sourcebook: Design and Evolution of a Mobile Phone OS

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.youkuaiyun.com/topmvp - topmvpThe current Symbian Press list focuses very much on the small scale features of Symbian OS in a programming c

TopMVP 663

Symbian OS下解析XML文档的一些方法

2009-10-27 22:44资料来源于网络,四种方式,大家可以自己尝试下.=========11111=================tinyXMLwww.grinninglizard.com/tinyxml/=========22222================================symbian s60 第三版之后,已经提供了解析xml的系统api,采用的是S

World of iOs 755

Symbian OS on E65应用开发手记(1)——搭建开发环境

 操作系统:Windows XP SP2一、安装相关软件/开发包    按照书上和网上写的,应需依次安装VC或VS(VS也可后装)、ActivePerl(干啥的?不知道)、J2SDK、S60 SDK、Carbide,VS2005、VC6.0和J2SDK以前都装过了,现在依次安装其他的。参考网址:http://hi.baidu.com/ipress/blog/item/74d504f7431fad2

小曰免的实验室 1844

Symbian OS Internals: Real-time Kernel Programming

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.youkuaiyun.com/topmvp - topmvpTake a look inside Symbian OS with an under-the-hood view of Symbians revolutionary new real-time smartphone

TopMVP 830

Symbian OS 手机开发

开发环境安装文件准备http://www.cnblogs.com/jinliangliu/archive/2006/11/08/554631.html1.Active Perl 5.6.1 builder635(http://www.devdiv.net/bbs/viewthread.php?tid=21509&extra=page%3D1%26amp%3Bfilter%3Dtype%26

hsyouxishe的专栏 584

Programming for the series 60 platform and symbian OS

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.youkuaiyun.com/topmvp - topmvpThis book is a handbook of software development for the Series 60 Platform, written by software professionals

TopMVP 430

symbian 静默安装卸载程序

一、需要的头文件:#include #include 二、需要的LIB库:swinstcli.lib三。需要的能力:TrustedUI四、安装应用程序 : _LIT( KTempPath , "c://SilTest.SISx" ); CAOSync* waiter = CAOSync::NewL();         CleanupStack::PushL( waiter );      iOptions.iUpgrade = SwiUI::EPolicyNotAllowed;      iOptions

开发简记 768

常见手机文件格式介绍,涵盖不同地域品牌不同操作系统的文件格式~(

常见手机文件格式介绍,涵盖不同地域品牌不同操作系统的文件格式~( 2011年02月12日   鉴于还有很多机友们对网络上下载的各种手机文件格式的不了解,在此从网上搜集并整理了一些常用的手机文件格式的介绍,希望对一些新手机友们有一定的帮助,也希望各位不用因为下错了不符合自己手机使用的应用程序而导致自己的爱机出问题从而浪费时间,甚至浪费金钱~对此很了解或者看过的机友们可以绕道了~   常...

air18air 2451

symbian 短信操作

查看文章  【转】 symbian短信操作2010-09-19 10:07转载自 yuelongr最终编辑 yuelongr========================= 【乐龙博客】== 【点击查看完整原文】== 【本文摘要】这篇文章演示了短信处理的各项操作。 Conten

377

如何在5分钟内快速上手EKA2L1模拟器:终极Symbian怀旧体验指南 [特殊字符]

想要重温经典的Symbian OS和N-Gage游戏吗?EKA2L1模拟器为你打开了一扇通往移动游戏黄金时代的大门!这款功能强大的Symbian OS/N-Gage模拟器让您能够在现代设备上畅玩经典游戏,今天就让我们一起探索如何在5分钟内快速上手这款终极怀旧神器。 ## 📥 第一步:获取EKA2L1模拟器 EKA2L1模拟器提供了多种平台的预编译版本,让安装变得异常简单。您可以直接从项目的[

gitblog_00532的博客 1087
上一篇: 为自己的邮箱生成一张酷酷的图片
下一篇: 自定义样式
dreambroken
博客等级 码龄25年 8粉丝 34原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值