WEB开发网
开发学院手机开发Symbian 开发 Symbian C++ 基础 文件服务器(File Server) 阅读

Symbian C++ 基础 文件服务器(File Server)

 2010-03-22 16:14:00 来源:WEB开发网   
核心提示:文件服务器处理所有 在手机的存储设备上的文件和目录管理相关的事情, 在ROM,RAM,Flash和移动存储设备,甚至通过HTTP访问的远程文件系统上, 提供一个一致的(consistent)接口. 文件服务器进程是EFILE.exe, 它的客户端接口由EFSRV.dll实现.下图是Symbian文件服务器架构文件系统的

文件服务器处理所有 在手机的存储设备上的文件和目录管理相关的事情, 在ROM,RAM,Flash和移动存储设备,甚至通过HTTP访问的远程文件系统上, 提供一个一致的(consistent)接口. 文件服务器进程是EFILE.exe, 它的客户端接口由EFSRV.dll实现.

下图是Symbian文件服务器架构

文件系统的客户端handle由RFs类实现, 它从RSessionBase继承而来,被用来操作磁盘,目录和文件.

单个文件和目录的 handles由RFile和RDir类实现. 它们作为sub-session实现,以便客户端在单个线程里打开多个文件和目录

文件服务器会话

为了使用文件服务器,调用者必须首先建立一个文件服务器会话, 由一个RFs类的实例代表.

初始化和清理

通过调用Connect()来初始化文件服务器会话

使用会话

文件服务器会话可以被许多文件系统操作使用,包括:

打开,建立, 删除, 重命名文件和目录

设置目录和文件的属性

文件和目录改变后的异步通知

关于驱动器和卷的信息

添加和删除文件系统插件

文件

RFile类是 到 文件服务器的 RFs客户端会话的一个子会话. 一个RFile对象 表示到一个有名字的,单个文件的访问.

初始化和清理

有四种方法来初始化一个RFile对象

RFile::Open() 按名称打开一个已经存在的文件, 如果文件不存在返回KErrNotFound; 如果其他客户端已经打开这个文件进行互斥的读或者写时, 返回 KErrAccessDenied. 如果进程没有访问文件的权限,就返回KErrPermissionDenied; 如果给出的文件名不是一个合法的文件名 就返回 KErrBadName; 如果路径不存在,则返回 KErrPathNotfound

RFile::Create() 用提供的名字 创建 和打开一个新的文件; 如果存在同名的文件,就返回KErrAlreadyExists

RFile::Replace() 如果提供的文件名不存在,就创建一个新的; 如果存在,就删除已经存在的文件,用一个新的空的文件替换它.

RFile::Temp() 打开一个新的临时文件,并为其设置一个唯一的名字

通用的模式是 调用Open()尝试打开一个已经存在的文件,而不替换它的任何数据. 如果它还不存在,就调用Create()

1 2  下一页

Tags:Symbian 基础 文件

编辑录入:coldstar [复制链接] [打 印]
赞助商链接