Symbian 文件读写及读写流的方法
2010-03-18 20:53:00 来源:WEB开发网BaflUtils
Location: BAUTILS.H
Link against: bafl.lib
BaflUtils(Basic Application Framework Library)提供的全是静态方法,使用起来非常爽,提供诸如FileExists、PathExists(文件夹全路径)、 FolderExists(不必指定盘符)等方法。不过这些方法都需要传递一个RFs&,BaflUtils需要有这么个FileSession 才能进行相关操作。
EikFileUtils
Location: EIKFUTIL.H
Link against: eikcore.lib
类似于BaflUtils类,最大的不同在于这个类的静态方法不需要传递RFs&,因此这个类经常用于GUI App中。不过这个类的方法没有BaflUtils来得全面,比如居然没有FileExists方法。
CFileMan
Location: f32file.h
Link against: efsrv.lib
以上两个类本质上是对一个CFileMan的封装。 FileMan==FileManager,提供了Copy、Delete、Move、Attribs(改文件属性)等方法,通过NewL(RFs& amp;)方法可以构造一个CFileMan,然后就可以通过它来操作文件了。
CFileMan::NewL()有一个重载版本支持传入一个 MFileManObserver指针作为参数,或者可以通过SetObserver()设定观察者,利用这个观察者可以监视文件状况,以便对特定文件的复制、删除等操作进行响应。
RFs
Location: f32file.h
文件操作当然不能不提RFs咯,这么重量级别的人物。
个人理解EikFileUtils、BaflUtils都是通过RFs来调用 CFileMan操作文件,这里面的关系还真TMD错综复杂啊,不过咱小程序员一个,不必深究太多,能用则用呗。RFs提供的方法真是多得吓人,应有那个尽有。我就不?嗦了,自己查API Doc去。
TParse/TParsePtr/TParsePtrC
Location: f32file.h
Link against: efsrv.lib
这又是一系列好玩又方便的类。后两个最好用,以TParsePtr为例:
其构造函数TParsePtr(TDes&)接受一个TDes引用作为参数,可以对这个TDes进行一系列的判断及操作。可以往这个TDes中追加文件夹、分离文件名、分离后缀名等等实用的操作。这样就不用大费周章地自己进行描述符操作,就能很智能地处理文件路径了,是不是很酷呢?
而TParsePtrC(TDesC&)除了不能用那些修改文件名的函数,其余功能和TParsePtr一致(所有的函数都定义在基类TParseBase中)。
更多精彩
赞助商链接