首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> Symbian >> 网络 >> 正文
UIQ 2.x上保存网址为书签的解决方案
作者:赵江伟    文章来源:http://blog.csdn.net/zhaojiangwei102/archive/2006/09/04/1176332.aspx    更新时间:2006-9-5 11:04:56

Symbian S60中,书签是被保存在一个数据库文件中的,使用CFavouritesDb可以操纵它,例如删除,添加;但是在UIQ 2.x上,每一个书签都是作为一个单独的文件存在的(其扩展名为.url,这是我在困惑了几天之后用QFileMan无意中发现的,^_^);因此在UIQ上添加书签就只需新建一个.url文件,然后按照一定的格式写入你的网址就可以了.

下面给出了一份代码,以供参考:

TBool CExampleAppUi::SavetoBookMarkL(const TDesC& aBookmarkTitle, const TDesC8& aBookmarkUrl)
{
 //常量定义
 _LIT8(KRootForlder,"\\system\\apps\\browser\\folders\\书签\\");
 _LIT8(KBookmarkHeader,"[InternetShortcut]\r\nURL=");
 _LIT8(KBookmarkEnd,"\r\nWA=0");
 _LIT(KExt,".url");

 //获取要创建的书签的文件名
 TFileName fielName;
 GbkToUtf8L(fielName,KRootForlder());
 fielName.Append(aBookmarkTitle);
 fielName.Append(KExt);

 RFile fileWrite;
 CleanupClosePushL(fileWrite);
 
 TInt err=fileWrite.Replace(CEikonEnv::Static()->FsSession(),fielName,EFileWrite);
 if(err!=KErrNone)
 {
  //创建书签文件失败,无法保存此书签
  HBufC *errText=CEikonEnv::Static()->AllocReadResourceLC(R_ERROR_TEXT);
  CEikonEnv::Static()->InfoMsg(*errText);
  CleanupStack::PopAndDestroy(errText);
  return EFalse;
 }
 //写书签的头部
 TBuf8<256> tempBuf;
 tempBuf.Copy(KBookmarkHeader);
 fileWrite.Write(0,tempBuf);
 
 //写书签对应的URL
 fileWrite.Write(aBookmarkUrl);

 //写书签的结尾
 tempBuf.Zero();
 tempBuf.Copy(KBookmarkEnd);
 fileWrite.Write(tempBuf);
 
 //关闭RFile资源
 CleanupStack::PopAndDestroy(&fileWrite);
 
 //给用户一个提示
 HBufC *okText=CEikonEnv::Static()->AllocReadResourceLC(R_SUCCESS_TEXT);
 CEikonEnv::Static()->InfoMsg(*okText);
 CleanupStack::PopAndDestroy(okText);
 return ETrue;
}

PS: 突然发现QFileMan和FExplorer是两个很有用的工具的,有时候它们会帮你大忙的.

声明: 转贴或引用请注明出处!

BR/赵江伟

2006-09-04

相关文章:
如何在SYMBIAN60中编写DLL
TFileStream
S60系统的文件操作类
流读取windows编写的txt文件
关于exe形式编程的一点心得(续2)
Socket 引擎的设计与实现9
Socket 引擎的设计与实现8
一个简单的 leave Demo
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号