UIQ 2.x上保存网址为书签的解决方案

在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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值