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

时间:2022-02-13 03:23:47

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

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

现将实现过程记录如下:

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

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

        private void button1_Click(object sender, EventArgs e)

        {

            string url = "http:// ";

            try

            {

                CDO.IMessage msg = new CDO.MessageClass();

                CDO.Configuration c = new CDO.Configuration();

                msg.Configuration = c;

                // 第一参数为url,第二参数为支持格式,第三参数为用户ID,第四参数为用户密码

                msg.CreateMHTMLBody(url, CDO.CdoMHTMLFlags.cdoSuppressAll, "", "");

                msg.GetStream().SaveToFile(@"d:/1.mht", ADODB.SaveOptionsEnum.adSaveCreateOverWrite);

                MessageBox.Show("Save OK!!!");

            }

            catch (Exception ex)

            {

                MessageBox.Show("Error:" + ex.Message);

            }

        }