`
mmdev
  • 浏览: 12889834 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

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从列表中移除时,这个共享文件将被删除。

  • 分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics