环境: VS2005 XP我的程序不知怎么回事,大多数情况下编译后能正确执行,但有时候会在执行时遇到System.IO.FileNotFoundException异常:
System.IO.FileNotFoundException 系统找不到指定的文件。 (异常来自 HRESULT:0x80070002)异常提示信息到此为止,我也不知道是找不到啥文件。不过不用修改代码,重新编译后,程序就能正常执行了(或者重启机器也行)。请大虾们指点一下,thanks!
=================================
附带关于我项目的一些信息项目名称:SaveWebPage
using System;
using System.Collections.Generic;
using System.Collections;
using System.IO;
using System.Text;
using System.Windows.Forms;
using mshtml;
using System.Net;
using System.Net.Cache;
using System.Text.RegularExpressions;
using System.Threading;异常出现在执行:string dt = this.WebBrowser1.DocumentText;时。
System.IO.FileNotFoundException 系统找不到指定的文件。 (异常来自 HRESULT:0x80070002)异常提示信息到此为止,我也不知道是找不到啥文件。不过不用修改代码,重新编译后,程序就能正常执行了(或者重启机器也行)。请大虾们指点一下,thanks!
=================================
附带关于我项目的一些信息项目名称:SaveWebPage
using System;
using System.Collections.Generic;
using System.Collections;
using System.IO;
using System.Text;
using System.Windows.Forms;
using mshtml;
using System.Net;
using System.Net.Cache;
using System.Text.RegularExpressions;
using System.Threading;异常出现在执行:string dt = this.WebBrowser1.DocumentText;时。
解决方案 »
- (顶者有分)我写了一个VS2010的插件(想要的可以给源代码),怎么安装呢?
- 如何控制权限?请有经验的高手指点一下
- 碰上需要多继承的时候,怎么办?
- 高分,类的串行化,转成指定的格式
- 急!!2003服务器CPU100 %的问题
- LogonUser 函数如何在域中使用?
- 关于IEnumerator和IComparable等接口的疑问
- 在textBox中不填数据时显示0.00,填入数据后,按小数点右对齐.如何实现.
- 初学者求助!!!dispatcher.runasync的简单报错,懂的人举手之劳
- 如何获得数据库中的表格和表格中的字段!(在线等)
- 在access数据库中,这一句错在哪里: select * from 大表 where 学校 link '%河南%'
- 请教: 怎样在C# 调用 javascript写的事件
{
SaveHTMLDocument(ControlObj.Document); MemoryStream ms = new MemoryStream();
string boundary = "\r\n\r\n------=_NextPart_000_0000_01CA095D.30E12370\r\n";
string end = "\r\n\r\n------=_NextPart_000_0000_01CA095D.30E12370--"; string head = "From: <由 InfiKeeper 保存>\r\n";
head += ("Subject: " + ControlObj.DocumentTitle + "\r\n");
head += "Date: " + DateTime.Now.Date.ToString() + "\r\n";
head += "MIME-Version: 1.0\r\n";
head += "Content-Type: multipart/related;\r\n";
head += " type=\"text/html\";\r\n";
head += " boundary=\"----=_NextPart_000_0000_01CA095D.30E12370\"\r\n";
head += "\r\n"; byte[] b0 = System.Text.Encoding.GetEncoding("GB2312").GetBytes(head);
ms.Write(b0,0,b0.Length); //以下获取CharSet的代码来自网络
string dt = "";
try
{ dt = this.ControlObj.DocumentText; }
catch (System.IO.FileNotFoundException e_)
{ throw new SaveWebPageException(e_.Message,980003); } Match charSetMatch = Regex.Match(dt, "<meta([^<]*)charset=([^<]*)\"", RegexOptions.IgnoreCase | RegexOptions.Multiline);
string CharSet = charSetMatch.Groups[2].Value; 出错前后代码
{
SaveHTMLDocument(ControlObj.Document); MemoryStream ms = new MemoryStream();
string boundary = "\r\n\r\n------=_NextPart_000_0000_01CA095D.30E12370\r\n";
string end = "\r\n\r\n------=_NextPart_000_0000_01CA095D.30E12370--"; string head = "From: <由 InfiKeeper 保存>\r\n";
head += ("Subject: " + ControlObj.DocumentTitle + "\r\n");
head += "Date: " + DateTime.Now.Date.ToString() + "\r\n";
head += "MIME-Version: 1.0\r\n";
head += "Content-Type: multipart/related;\r\n";
head += " type=\"text/html\";\r\n";
head += " boundary=\"----=_NextPart_000_0000_01CA095D.30E12370\"\r\n";
head += "\r\n"; byte[] b0 = System.Text.Encoding.GetEncoding("GB2312").GetBytes(head);
ms.Write(b0,0,b0.Length); //以下获取CharSet的代码来自网络
string dt = "";
try
{ dt = this.ControlObj.DocumentText; }
catch (System.IO.FileNotFoundException e_)
{ throw new SaveWebPageException(e_.Message,980003); } Match charSetMatch = Regex.Match(dt, "<meta([^<]*)charset=([^<]*)\"", RegexOptions.IgnoreCase | RegexOptions.Multiline);
string CharSet = charSetMatch.Groups[2].Value; string html = "------=_NextPart_000_0000_01CA095D.30E12370\r\n";
html += "Content-Type: text/html;\r\n";
html += (" charset=" + "\"" + CharSet +"\"" + "\r\n" );
html += "Content-Transfer-Encoding: quoted-printable\r\n";
html += ("Content-Location: " + this.URL +"\r\n\r\n"); byte[] b1 = System.Text.Encoding.GetEncoding("GB2312").GetBytes(html);
ms.Write(b1, 0, b1.Length); bool charChange = false;
if (string.Equals(CharSet, "unicode"))
{
CharSet = "utf-16";
charChange = true;
} StreamReader sr = new StreamReader(this.ControlObj.DocumentStream, System.Text.Encoding.GetEncoding(CharSet), true);
string sHtml = sr.ReadToEnd(); if (charChange)
{
CharSet = "utf-8";
sHtml.Replace("charset=unicode", "charset=utf-8");
byte[] temp1 = System.Text.Encoding.GetEncoding("utf-16").GetBytes(sHtml);
byte[] temp2 = Encoding.Convert(System.Text.Encoding.GetEncoding("utf-16"), System.Text.Encoding.GetEncoding("utf-8"), temp1);
sHtml = System.Text.Encoding.GetEncoding("utf-8").GetString(temp2);
} string sss = Encode(sHtml, CharSet);
byte[] temp10 = System.Text.Encoding.GetEncoding(CharSet).GetBytes(sss);
ms.Write(temp10, 0, temp10.Length); for (int i = 0; i < ContentParts.Count;++i )
{
byte[] bb = System.Text.Encoding.GetEncoding("GB2312").GetBytes(boundary);
byte[] dd = ((ContentPart)ContentParts[i]).GetContent();
ms.Write(bb, 0, bb.Length);
ms.Write(dd,0,dd.Length);
} byte[] be = System.Text.Encoding.GetEncoding("GB2312").GetBytes(end);
ms.Write(be, 0, be.Length);
ms.WriteByte(13);
ms.Position = 0; byte[] result = Tools.StreamToBytes(ms);
return result;
}//end fun