WEB开发网
开发学院手机开发Symbian 开发 Symbian 文件读写及读写流的方法 阅读

Symbian 文件读写及读写流的方法

 2010-03-18 20:53:00 来源:WEB开发网   
核心提示:1. FileServer之文件操作:a. 遍历指定文件目录RFs& rs = CCoeEnv::Static()->FsSession(); // 建立一个文件服务器回话CDir* dirEntryList = NULL; // 用来保存获取到的目录下的条目_LIT(KPath, “C:\Nokia\”); /

1. FileServer之文件操作:

a. 遍历指定文件目录

RFs& rs = CCoeEnv::Static()->FsSession(); // 建立一个文件服务器回话

CDir* dirEntryList = NULL; // 用来保存获取到的目录下的条目

_LIT(KPath, “C:\Nokia\”); // 文件夹目录的路径

// 使用文件服务器回话来遍历文件夹目录

User::LeaveIfError(fs.GetDir(/*const TDesC& */ KPath, // 要遍历的文件目录路径

/* TUint */ KEntryAttNormal, // 要获取的文件属性(非系统和隐藏文件)

/* TUint */ ESortByName, // 按名字排序

/* CDir*& */ dirEntryList // 返回的文件和目录条目指针

)

);

// 遍历文件目录条目

For(Tint i =0; i < dirEntryList->Count(); i++)

{

const TEntry& anEntry = (*dirEntryList)[i];

TBuf name = anEntry.iName;

TUint attribute = anEntry.iAtt;

TInt size = anEntry.iSize;

}

// 删除文件以及目录条目列表

delete dirEntryList;

dirEntryList = NULL;

b. 读写文件

在读写之前必须先建立一个文件服务器对话(RFs),RFile提供的读写文件功能只针对二进制数据或者ascii文本(读写针对的文件类型是位描述符byte descriptor,即TDes8, TDesC8),调用RFile::Close()时,会自动将cached data刷新到文件当中,但是如果出错,它并不返回任何错误值,所以最好在调用Close()之前,先调用Flush()

RFile::Create()

RFile::Open()

RFile::Replace()

RFile::Flush()

RFile::Close()

使用流来进行读写操作

对于想要实现流操作的类,必须实现以下两个操作:

ExternalizeL(): 将其状态输出到流中以bit的形式保存

InternalizeL(): 将流中的bit读到对象中来

RWriteStream提供将一下的变量类型序列化到文件中:

TInt, TUint, TReal, TReal64, descriptor, 读入流(RReadStream)

调用RWriteStream::CommitL()提交写入操作。

class CMyObject : public CBase

1 2 3 4 5 6  下一页

Tags:Symbian 文件 读写

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