精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
近期写一个SEO工具,读取大量文件,读取一个文件时遇到:System.IO.InvalidDataException:“解码时找到无效数据。”错误。
错误代码如下:
StreamReader reader = new StreamReader(openFileDialog1.FileName, System.Text.Encoding.UTF8);
HtmlParser.HtmlDocument document = HtmlParser.HtmlDocument.Create(reader, "");
开始认为是文件多,环境里内存占用多对代码有影响,就减少了循环次数和访问文件个数,依然有错误,用其它编辑器打开文件正常,能看到内容,实在想不到办法,在循环里加了try catch,把异常捕获,不影响循环执行,等于说问题没找到解决办法,不过目标肯定是文件内容和文件格式,用的VS2019,不过.NET平台不是最新的,如果谁看到这篇文件,也可以考虑用最新的.NET平台来试下代码,看能不能解决。
另外我用的是StreamReader,大家可以换别的读取文件方式和文件编码对象。
用Ultraedit可以看到文件格式,打开这个报错文件,提示格式是U8-DC,和报错文件同目录下其它文件也是U8-DC格式,所以文件格式问题可能不是解决方向。
因为是我一个人用的工具,工具的结果重要,某个文件无所谓,所以我用绕开的方法解决问题。这也象有的公司代码比较旧,只要能解决问题的思路一样,开发环境千变万化,只求结果才好。