BREW开发教程(5):嵌入式文件系统中访问文件及其API

设备中包含了一个嵌入式文件系统EFS,但是这个文件系统和一般的桌面系统中的文件系统有一些不同,应用程序应按照下面规范来访问文件和使用文件API。指明文件名或是目录时,不要将磁盘符包含在内:例如:下面的调用是非法的,IFILEMGR_OpenFile(pIFileMgr, “C:/Test.dat”,_OFM_CREATE);在EFS是不存在磁盘符的概念的,因此在模拟器上是不支持盘符的。
  • 当指明文件名时,BREW总是会从当前目录下去打开文件,对于每个模块来说,模块所在的目录相当于是一个根目录,相应的,如果一个目录为<test/testapp.dat>,将在当前目录下查找该test子目录。

如果打开方式为_OFM_CREATE调用IFILEMGR_OpenFile(),如果被创建的文件及其目录不存在的情况下,将创建这些中间目录。例如:

IFILEMGR_OpenFile(pIFileMgr, “Test1/Test2/Test.dat”,_OFM_CREATE);

这个函数将创建子目录Test1 以及Test1/Test2,然后再创建Test.dat文件。这些子目录和文件是创建在Applet所在的目录下。

同样的方式在处理数据库时也会碰到,实际上BREW数据库是作为文件存放的,数据名实际上就是对应的文件名。

为模块增加文件大小及空间限制

开发者及设备制造商可以为模块指明最多可创建的文件数目,以及一个模块所允许写入的最大文件空间。在MIF编辑器或设备编辑器使用下面两个参数来设定这些限制。

最大文件数,这个数目指明了一个模块最多所能创建的文件数,包括在Applet目录以及共享目录下的文件总数,最大值的有效范围为7到65535。

最大空间(bytes),这个数目指明了一个模块最多可以写入的空间大小,包含Applet目录下(包含.mod,.sig,.bar,等等)以及可供Applet使用的共享目录下的文件。有效范围为20480到4294967295个字节。

跟踪共享目录下的文件

BREW通过将共享目录下每个文件与一个ClassID列表关联来跟踪这些共享文件,这个列表是持久性,另外存放并且对用户来说是不可见的。

IFILEMGR_Use()将ClassID加入这个列表,IFILEMGR_UnUse()将一个Class ID从列表中移除,当最后一个Class ID从列表中移除时,这个共享文件将被删除。

本文档为开发者提供了开发 BREW 设备平台应用程序所需的 Binary Runtime Environment for Wireless™ (BREW™) 函数和数据结构的信息。 在本参考资料BREW API 参考资料》的余下部分包括以下内容: BREW API 接口 按字母顺序列出 BREW 接口和函数。 助手函数 按字母顺序详列助手函数。 数据类型 按字母顺序详列 BREW 接口使用的数据结构。 每个函数的说明均提供了以下信息: 说明 函数用法的说明。 原型 一个调用结构的示例。 参数A 需要输入和返回的对象。 返回值 从函数调用返回的项目,包括多种类型、消息、值、结构和说明。 备注 帮助理解函数的用法、限制和边界的特殊说明和附加信息。 副作用 (仅在适当情况下) 使用函数调用时函数表现的任何异常行为。 除非存在副作用,否则不显示该标题。 版本 引入此函数的版本。 另请参阅 相关函数或数据结构的交叉参考。 A 注意: 仅当参数表包含混合类型时,参数列表才显示 [in]、[in/out] 和 [out]。 如果表都是输入参数,将省略 [in]。 BREW 继承函数 每个继承函数均链接至其基类。 以下是继承函数条目的一个示例。 IBITMAP_AddRef() 此函数继承于 IBASE_AddRef()。 详细信息 BREW 应用程序开发者可以得到相关的联机信息和支持。 请访问 BREW 网站了解详细信息: www.qualcomm.com/brew/zh/developer。 请求 BREW 的新功能 如果您在使用 BREW SDK 的过程对它的功能有任何意见和想法, 欢迎您按如下地址给我们发送电子邮件: brew-request@qualcomm.com。 新功能反应小组将认真考虑您的每一个意见,并通过电子邮件尽快地给予您答复。 BREW™ 程序设计概念 本部分讨论以下 BREW 程序设计概念。 转至主题 学习 BREW SDK 的组件 BREW SDK 包括的组件。 组件如何交互 如何配合使用下载 BREW SDK 后得到的各种组件和工具。 BREW SDK 目录结构 BREW SDK 文版的组织方式。 使用小程序和模块 在 BREW 如何使用小程序和模块编译应用程序 DLL。 还包括一些关于创建小程序和实例,处理小程序事件的主题。 BREW 开发指导原则 如何避免常见错误和缩短测试、调试和修改 BREW 源代码的时间。 创建新的应用程序 创建新 BREW 应用程序的方法。 还包括一些关于使用应用程序向导、处理特定语言资源和使用浮点运算的主题。 访问外壳服务 如何利用 IShell、IBase、IModule 和 IApplet 接口使模块和小程序可以访问外部服务。 事件处理概念 如何处理事件,包括切换事件。 在 EFS 访问文件API 与桌面文件系统(例如 Windows XP)相比,如何在设备的 EFS 上运行应用程序。 监测进入的 SMS 消息 BREW 电话层如何监测进入的 SMS 消息(如 DMA 设备的 IS-637 SMS 消息)。 管理短时计时器和设备睡眠 如何处理设备睡眠模式和短时计时器。 开发屏幕保护程序 如何在 BREW 创建屏幕保护程序,包括将应用程序注册为屏幕保护程序的过程。 扩展 BREW API 如何使用 BREW API 扩展自定义 BREW API。 从第三方应用程序调用 MobileShop。 如何向您的应用程序添加 MobileShop URL。 文件系统名称空间和 ACL 在 BREW 如何处理文件系统名称空间和 ACL。 BREW 安全模式 BREW 如何管理设备上有问题的应用程序。 内容安全 如何确保安全处理从因特网、SMS 消息和其它外部信息源接收的消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值