Symbian 文件读写及读写流的方法
2010-03-18 20:53:00 来源:WEB开发网fs.Close();
很方便吧。
RFile
Location: f32file.h
Link against: efsrv.lib
创建或者打开一个文件,可以对文件进行所有的操作,读啊写啊,改名改属性等等。
从Read()、Write()的所有重载版本看,参数都是TDesC8/TDes8 的,看来应该是对UTF-8 without BOM编码的文件适用。另外Read()、Write()都提供了同步、异步两种方式,可以按需要选用。
RFileReadStream/RFileWriteStream
Location: S32FILE.H
Link against: estor.lib
从RReadStream/RWriteStream派生出来的文件流。
示例代码:
RFileWriteStream writer;
writer.PushL(); //推上清洁栈
User::LeaveIfError(writer.Replace(fileSession, KFileName, EFileWrite)); //将流与文件绑定
writer << aTxt; //将aTxt的内容写入流
writer.CommitL(); //提交,相当于Flush
writer.Pop();
writer.Close();
Symbian文件操作整理
本文不断更新中…
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()设定观察者,利用这个观察者可以监视文件状况,以便对特定文件的复制、删除等操作进行响应。
更多精彩
赞助商链接