C#代码实现把网页文件保存为mht文件

MHT叫“web单一文件”。顾名思义,就是把网页中包含得图片,CSS文件以及HTML文件全部放到一个MHT文件里面。而且浏览器可以直接读取得。

由于项目需要,需实现把指定的网页文件保存为mht文件。于是到网上搜索了相关的资料。找到了一份代码。测试后通过。

现将实现过程记录如下:

Step 1:项目引用文件: 安装目录/System32/cdosys.dll(c:/windows/System32/cdosys.dll),这样,将增加两个命名空间:ADODB, CDO。

Step 2:放一个按钮button1,在其Click事件中加如下代码:

  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. string url = "http:// www.qq.com";
  4. try
  5. {
  6. CDO.IMessage msg = new CDO.MessageClass();
  7. CDO.Configuration c = new CDO.Configuration();
  8. msg.Configuration = c;
  9. // 第一参数为url,第二参数为支持格式,第三参数为用户ID,第四参数为用户密码
  10. msg.CreateMHTMLBody(url, CDO.CdoMHTMLFlags.cdoSuppressAll, "", "");
  11. msg.GetStream().SaveToFile(@"d:/1.mht", ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
  12. MessageBox.Show("Save OK!!!");
  13. }
  14. catch (Exception ex)
  15. {
  16. MessageBox.Show("Error:" + ex.Message);
  17. }
  18. }