Symbian中的文件操作
2010-06-03 16:14:00 来源:WEB开发网User::LeaveIfError(file.Open(fs, _L("C:\file.foo"), EFileWrite));
TBuf8<256> buf;
file.Read(buf, 256);
file.Seek(ESeekStart, 911);
file.Write(_L8("Some thing you wanna write..."));
file.Close();
fs.Close();
注:以上代码没有具过测试,没有具过编译检查,但是具过了对照SDK DeveloperLibrary的检查,技术上应该不会有什么问题。有两点要说明的,在程序中写死(HardCode)变量长度和位置什么东西还是最好用MACRO代替,这可能是所有 programmer的常识了,我并不是在教大家而是指名我的实例代码中的不足;另一点就是_L8(), _L()这两个MACRO是Symbian不支持大家再使用的了,大家最好用_LIT()或者_LIT8()来代替好了,此处仅仅为了方便使用了一下。
大家可以很容易从DeveloperLibrary看出,RFile支持的读写只有TDes8这种类型,也就是说它只能以byte,或byte数组的形式写入或者读出数据。如果大家想使用文本文件或者二进制数据文件的话,就要借助更高级的文件类了,他们的使用方法仍然是大同小异。
TFileText 提供了文本文件的读写,从他的API Reference中很容易看出来,在我们建立好的TFileText对象上,只要Set一个RFile到它本身上面,我们就可以用这个 TFileText对象来很容易的对文件(就是底层的RFile)来进行文本文件的读写了。
与此类似,RFileReadStream对象,在构造的时候只需指明构建在哪个RFile对象上,我们就可以方便的在这个RFile对象上进行数据的操作,比如读出一个32bit的整数,读出一个 64比特实型数。RFileWriteStream进行的是写入方面的操作,操作方式与读入类相同,就不赘述了。
从上面的例子和说明我们可以看出,Symbian系统的文件操作几乎与其他平台没什么太大的不同,也是符合所有的抽象文件操作要求的。对文件的操作只要我们看看DeveloperLibrary,记住几个常用的过程,就没有什么困难的了。
希望我写的文字能给大家带来些帮助!
为 kcomex 补充两点:
1、symbian的所有文件名中最好不好含有空格等特殊字符,负责编译可能出错,我用0.9SDK是这样的。
2、如果编译的时候出现了你不知道的文件夹,请将mmp文件所在的文件夹中的.bat和.inf文件删掉,用.mmp重新生成这两个文件。我一般都是使用mmpclick这个工具来生成的,因为命令行毕竟不方便。关于mmpclick的使用,在SDK附带的工具中有详细的说明。
更多精彩
赞助商链接