Symbian OS 文件服务器(二)

文件服务器会话

RFs

概述

   RFs类包装了与文件服务器的会话的句柄,通过RFs类型可以访问文件服务器。每一个连接到文件服务器的RFs都要求消耗一定服务器端资源和系统资源。因此,应该尽可能减少与文件服务器会话的数量。RFs类不允许用户继承。

   RFs类提供了全部的文件系统服务,包括:

   1、添加、删除、移动和重命名文件以及目录

   2、检查和改变文件属性以及目录项信息。这包括文件和目录最后修改的时间日期、大小,以及文件只读、隐藏、存档或系统的属性标记。

   3、可获得目录列表。

   4、维护了一个单一系统的缺省路径,而不像其他一些系统,每一个驱动器都用一个缺省路径。

   5、使用TParse对象可分析文件名。

   6、可获得驱动器和卷标的信息。

   7、格式化和标注卷标。

   8、可获得有效的驱动器列表、

   9、仿效DOSsubst命令,将路径与驱动器号关联,允许任意一个目录当作一个磁盘驱动器来看。

   10、当有重要的改变发生时,发出请求。用于当程序维护了一个文件列表,当系统中的文件发生改变时,必须发出请求更新这些列表。

   11、查找文件服务器的版本号。

   12、确保了当会话结束时,所以的资源都将关闭。

 

RFsAPI

   1、Connect()、Close()

   IMPORT_C TInt Connect(TIntaMessageSlots=KFileServerDefaultMessageSlots);

    连接一个与文件服务器的会话。在使用文件服务器之前,必须连接服务器会话。对于UI应用程序,控制环境(CONE)是组成程序框架的一部分,它提供了文件服务器会话的永久句柄,可以通过iCoeEnv上调用FsSession()来获得句柄的引用,而不用再连接新的会话。

    IMPORT_Cvoid Close();

    关闭文件服务器会话句柄。如果句柄被多个对象所引用,在关闭前要确保其他对象不在使用。如果句柄没有通过Close()关闭,那么文件服务器会话将在它所在的线程结束时自动关闭。

   2、SessionPath()、SetSessionPath()

   IMPORT_C TInt SessionPath(TDes&aPath) const;

   获得当前的会话路径。当客户端连接到文件服务器上后,会话路径就初始化为系统的缺省路径。

   IMPORT_C TIntSetSessionPath(const TDesC &aPath);

    重新设置会话路径,路径中不能包含文件名。

   3、GetDir()

    IMPORT_CTInt GetDir(const TDesC &aName, TUintanEntryAttMask,

                                      TUint anEntrySortKey, CDir *&anEntryList)const;

    获得经筛选后的文件和目录项列表。anEntryAttMask决定了目录项筛选的方法,anEntrySortKey决定了目录项的排序规则,anEntryList引用了文件和目录项列表的指针。

    IMPORT_CTInt GetDir(const TDesC &aName, TUintanEntryAttMask,

                                      TUint anEntrySortKey, CDir*&anEntryList,

                                      CDir *&aDirList) const;

    获得一个经筛选后的文件和目录项列表和一个不筛选的只含目录项列表。anEntryAttMask决定了第一个列表筛选的方法,anEntrySortKey决定了两个列表的排序规则,anEntryList引用了文件和目录项列表的指针,aDirList引用了目录项列表的指针。

    4、MkDir()、MkDirAll()、RmDir()、Delete()

    IMPORT_CTInt MkDir(const TDesC &aPath);

    IMPORT_CTInt MkDirAll(const TDesC &aPath);

    创建新的目录项,MkDir()的所有上级目录必须存在,MkDirAll()将创建所有不存在的上级目录。

    IMPORT_CTInt RmDir(const TDesC &aPath);

    删除指定目录,指定的目录必须为空。

    IMPORT_CTInt Delete(const TDesC &aName);

    删除指定的文件。不能使用通配符删除文件。

   5、Att()、SetAtt()

    IMPORT_CTInt Att(const TDesC &aName, TUint&aAttValue) const;

    获得指定文件的属性。aAttValue的二进制数的每一位表示一种属性。

    IMPORT_CTInt SetAtt(const TDesC &aName, TUintaSetAttMask,

                                      TUint aClearAttMask);

    设置或清除指定文件的属性。aSetAttMask为设置的属性值,aClearAttMask为清除的属性值。    

    6、Modified()、SetModified()

    IMPORT_CTInt Modified(const TDesC &aName, TTime&aTime) const;

    获得指定文件或目录的最后修改时间日期,以UTC(协调世界时)表示。

    IMPORT_CTInt SetModified(const TDesC &aName, const TTime&aTime);

    设置指定文件或目录的最后修改时间日期,以UTC(协调世界时)表示。

    7、Entry()、SetEntry()

    IMPORT_CTInt Entry(const TDesC &aName, TEntry&anEntry) const;

    获得指定文件或目录项的详细信息。anEntry为详细信息的引用。

    IMPORT_CTInt SetEntry(const TDesC &aName, const TTime&aTime,

                                         TUint aSetAttMask, TUint aClearAttMask);

    同时设置文件或目录项的属性和最后修改时间。aTime为新的修改时间,aSetAttMask为设置的属性值,aClearAttMask为清除的属性值。

    8、Replace()和Rename()

    IMPORT_CTInt Replace(const TDesC &anOldName, const TDesC&aNewName);

    anOldName路径下的文件移到aNewName路径下。若aNewName路径下有同名文件,那么将覆盖这个文件。文件名中不能带通配符。

    IMPORT_CTInt Rename(const TDesC &anOldName, const TDesC&aNewName);

    当源路径和目的路径相同时,为重新命名文件或目录。当源路径和目的路径不同时,为移动文件或目录,不支持对已有文件和目录的覆盖。移动目录时,目录下所以内容将一起移动。路径中不能带有通配符。

   9、DriveList()、DriveToChar()、CharToDrive()、Drive()、Volume()

    IMPORT_CTInt DriveList(TDriveList &aList) const;

    获得一个可用的驱动器列表。列表包含26项,第0项对应驱动器A、第1项对应驱动器B,以此类推。某一项的值为非零时,表示对应的驱动器可用。

    staticIMPORT_C TInt DriveToChar(TInt aDrive, TChar&aChar);

    将驱动器数字表示映射到传统的驱动器字母表示。

    staticIMPORT_C TInt CharToDrive(TChar aChar, TInt&aDrive);

    将传统的驱动器字母表示映射到驱动器数字表示。

    IMPORT_CTInt Drive(TDriveInfo &anInfo, TIntaDrive=KDefaultDrive) const;

    获得指定驱动器的信息。

    IMPORT_CTInt Volume(TVolumeInfo &aVol, TIntaDrive=KDefaultDrive) const;

    获得指定卷标的信息。

   10、Parse()

    IMPORT_CTInt Parse(const TDesC &aName, TParse&aParse)const;    

    IMPORT_CTInt Parse(const TDesC &aName, const TDesC&aRelated, 

                                    TParse &aParse)const;

    分析指定的文件名称信息。

    11、NotifyChange()、NotifyChangeCancel()、SetNotifyChange()

    IMPORT_Cvoid NotifyChange(TNotifyType aType, TRequestStatus&aStat);

    IMPORT_Cvoid NotifyChange(TNotifyType aType, TRequestStatus&aStat,

                                               const TDesC &aPathName);

    IMPORT_Cvoid NotifyChangeCancel();

    IMPORT_Cvoid NotifyChangeCancel(TRequestStatus&aStat);

    IMPORT_CTInt SetNotifyChange(TBool aNotifyChange);

    

    12、NotifyDiskSpace()、NotifyDiskSpaceCancel()

    IMPORT_Cvoid NotifyDiskSpace(TInt64 aThreshold, TInt aDrive,

                                                    TRequestStatus&aStat);

    IMPORT_Cvoid NotifyDiskSpaceCancel(TRequestStatus&aStat);

    IMPORT_Cvoid NotifyDiskSpaceCancel();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值