Symbian C++ 基础 文件服务器(File Server)
2010-03-22 16:14:00 来源:WEB开发网文件服务器处理所有 在手机的存储设备上的文件和目录管理相关的事情, 在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()
更多精彩
赞助商链接