Linux操作系统下的离线浏览器介绍

http://tech.ddvip.com   2006年11月19日    社区交流

本文详细介绍Linux操作系统下的离线浏览器介绍

QString LocalDir = LDir + “/” + protocol + “_” + ipaddr + directory; 
QString LocalPath = LocalDir + file;

  这样一来,如果一个网络文件的URL是http://11.171.38.32/webfile/relax/index.html,而用户指定的本地目录是/home/yangjx/web,则此网页文件对应的镜像路径为/home/yangjx/web/http_11.171.38.32/webfile/relax/index.html。

  处理下载文件

  有了镜像路径生成算法,接下来要对下载的文件做如下处理:

  ● 如果是网页文件,必须扫描文件,并将其中以绝对URL形式给出的超级链接替换成用镜像路径生成算法产生的本地绝对路径,而那些以相对路径形式给出的超级链接则保持不变;

  ● 建立相应的目录,并保存文件到绝对路径所指定的位置。

  在建立目录时,由于Linux提供的目录创建函数int mkdir(char * dir, int mode)只能在已存在的目录下建立一级子目录,所以要用“递归”方式构造一个目录创建函数:

static int CDirTools:: Mkdir(QString dir,int mode) 
{ 
QString parentdir; 
 if(dir.isEmpty()) 
//如果dir为空串返回失败 
return -1; 
 int result = mkdir(dir,mode); 
 if(result == -1 && errno == EEXIST) //如果dir目录已经存在,则返回1 
return 1; 
 if(result != -1) 
//如果建立成功,则返回0 
  return 0; 
 else 
 {//否则先创建其父目录 
  KURL u((const char *)dir); 
//取得dir的父目录   
parentdir = url.directory(false); 
  if(Mkdir(parentdir) == -1) 
//如果父目录创建失败,则返回-1;否则再次创建本目录 
   return -1; 
  if(mkdir(dir,mode) == -1) 
//如果本目录创建失败,则返回-1 
  return -1; 
 } 
}
  编程实现

  Linux操作系统的桌面环境KDE提供了一个文件管理器KFM,它和IE一样既可以浏览本地目录和文件,也可以浏览网页,并且KFM还提供了C++编程接口: KHTMLView类。我们可以创建一个KHTMLView类的子类CHtmlView来浏览下载的网页文件。

责编:豆豆技术应用

正在加载评论...