Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9269839
  • 博文数量: 299
  • 博客积分: 9955
  • 博客等级: 中将
  • 技术积分: 4177
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-27 20:59
文章分类
文章存档

2015年(1)

2012年(2)

2011年(9)

2010年(47)

2009年(108)

2008年(132)

我的朋友

分类: 系统运维

2008-03-20 16:39:51

CHM文件中某一个具体页面的连接地址是类似如下的方式:  
  mk:@MSITStore:F:\FAT32.chm::/fat5.htm  
   
  mk:@MSITStore   是一种特殊的协议,用于读取CHM文件中的内容。  
   
  System.Net.HttpWebRequest、System.Net.WebClient、文件对象   这些都不识别这种协议。  
   
  如果你用它们来读取这样的文件,会报错误:  
  “无法识别该   URI   前缀。”  
   
  好在我们有   XMLHttp   可以识别这种协议  
   
  演示代码如下:  
  首先请确保增加了对       Microsoft   XML     COM的引用。   可能你的电脑上这个COM有不同版本,无所谓,都可以。  
   
                  private   void   button1_Click(object   sender,   System.EventArgs   e)  
                  ...{  
                          string   DownFileName   =   @"mk:@MSITStore:F:\FAT32.chm::/fat5.htm";  
                          string   SaveFileName   =   @"C:\11.html";  
   
                          MSXML2.XMLHTTPClass   _xmlHttp   =   new   MSXML2.XMLHTTPClass();  
                          _xmlHttp.open("GET",DownFileName,false,null,null);  
                          _xmlHttp.send(null);  
   
                          if(   _xmlHttp.readyState   ==   4   )  
                          ...{  
                                  if(System.IO.File.Exists(SaveFileName))    
                                          System.IO.File.Delete(SaveFileName);  
                                  System.IO.FileStream   fs   =   new   System.IO.FileStream(SaveFileName,  
                                          System.IO.FileMode.CreateNew);  
                                  System.IO.BinaryWriter   w   =   new   System.IO.BinaryWriter(fs);  
                                  w.Write((byte[])_xmlHttp.responseBody);  
                                  w.Close();  
                                  fs.Close();  
                          }  
   
                  }  
   
  可以参考:  
 
阅读(2027) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~