手机操作系统 第十章 文件、流和存储北京邮电大学.ppt

手机操作系统 第十章 文件、流和存储北京邮电大学.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 文件、流和存储 邹仕洪,博士 网络与交换国家重点实验室 宽带网研究中心 zoush@ /~ZouShihong/symbian 主要内容 文件 比较原始,是流的基础 流 首选,使用方便 存储 在保存和读取外部化数据上作为流的补充 支持结构化的数据存储,实际上是流的集合(网络) 文件 文件服务器F32为E32完成程序的加载工作 文件服务器会话 文件服务器的功能 文件、目录 驱动器、卷 文件名的解析 基本知识 文件名 类似于PC机的长文件名,例如:c:\system\apps\my file 最多256个字符 最多支持26个驱动器,从a: 到 z: 不支持.和.. 目录的层次分隔使用“\”(windows风格)而非”/”(UNIX风格) 保持原有的大小写,但对大小写不敏感 媒体类型可以是多种 ROM,RAM,CF 文件系统:VFAT 驱动器、文件系统和存储介质 ROM文件系统:z: 内部读写驱动器:c: 存储介质为Flash RAM,掉电后数据不消失。但其速度比RAM慢 可移动介质: 比如CF卡,MMC卡,记忆棒等,一般在系统中表现为 驱动器E: 此类存储技术在读取时能耗较少,写入时能耗较多 可以动态地增加驱动器而不必重启,同时也不必中断已建立的文件服务器会话。 总可以安全的假定symbian手机有一个只读的z:和一个可读写的c: 文件服务器会话 用于客户端访问文件服务器 RFs::MkDir(), RFs::Write()被转换为会话中的消息传给服务器 是RFs的一个实例 一个线程允许多个RFs对象 一个RFs可以打开多个文件或者目录 主要功能 数据传送 目录和文件管理 使用文件服务器的模式 与文件服务器建立RFs连接 打开文件,指明所使用的RFs 完成需要执行的工作 关闭文件 使用Close()关闭RFs 使用文件会话 文件会话的操作 GUI应用程序,直接使用iCoeEnv-FsSession()获取现有的文件会话 CONE环境已经打开一个文件会话,因此GUI应用程序不必要再创建一个文件会话,而是通过API获取后直接使用 文件系统相关的一些操作 操作当前的目录 创建、删除或重命名目录 删除、重命名文件 改变文件的属性 RFs的文件相关操作 列出一个目录下的所有文件 _LIT(KDir,“\\FileserverExample\\*”); CDir* dirList; User::LeaveIfError(fsSession.GetDir(KDir, ????????KEntryAttMaskSupported,ESortByName,dirList)); _LIT(KString,“%S”); for (TInt i=0;idirList-Count();i++) ????console-Printf(KString,(*dirList)[i].iName); delete dirList; //同时列出目录和文件 //目录和文件分开列出 CDir* fileList; User::LeaveIfError(fsSession.GetDir(KDir, ????????KEntryAttNormal,ESortByName,fileList,dirList)); 移动文件 // Move file.txt from dir1 to dir2 _LIT(KFileSource,\\dir1\\file.txt); _LIT(KFileTarget,\\dir2\\file.txt); User::LeaveIfError(fsSession.Rename(KFileTarget,KFileSource)); RFs的文件相关操作 删除文件 文件必须已关闭 文件不能是只读 使用RFs来删除文件 User::LeaveIfError(fsSession.Delete(KFileName)); RFs::Delete()不支持通配符 要删除多个文件,请使用CFileMan::Delete() 创建目录 User::LeaveIfError(fsSession.MkDir(KDirectory)); 删除目录 删除空目录 User::LeaveIfError(fsSession.RmDir(KDirectory)); 单元,驱动器和卷 单元(unit)是一个设备 其中可能包含驱动器,也可能不包含驱动器 对于移动介质来说,单元总是存在的,而驱动器则不一定 驱动器在一个单元中 RFs::DriveList()获取可用的驱动器列表 RFs::Drive()获取某个驱动器的信息 RFs::Volume()获取卷的信息,包括驱动器的所有信息,卷名,ID,大小,可用空间 一个驱动器可以被分为多个卷:分区 最多四个分

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档