我想读的HTML file.And我用System.IO.File.ReadAllText(路径)。它可以读取所有的html文件,但有一个文件不通过这个函数读取。System.IO.File.ReadAllText(路径)不读取HTML文件
我已经使用(StreamReader的读者= File.OpenText(文件名))也用于
{ 文本= reader.ReadToEnd();但仍然有同样的问题。
究竟是什么原因可以在那里?对此,解决方案有哪些?或者其他方式来读取文件?
我想读的HTML file.And我用System.IO.File.ReadAllText(路径)。它可以读取所有的html文件,但有一个文件不通过这个函数读取。System.IO.File.ReadAllText(路径)不读取HTML文件
我已经使用(StreamReader的读者= File.OpenText(文件名))也用于
{ 文本= reader.ReadToEnd();但仍然有同样的问题。
究竟是什么原因可以在那里?对此,解决方案有哪些?或者其他方式来读取文件?
我会猜测:
该文件包含用于扩展字符的unicode序列,并且诊断基于(不匹配的)长度。
,如果我调试了它的代码看起来 像 “< \ 0H \0吨\0米\0升\ 0> \ 0 < \ 0H \ 0E \ 0A \ 0D \ 0> \ 0 \ r \ 0 \ n \ 0 < \ 0M \ 0E \ 0T \ 0A \ 0 \ 0h \ 0t \ 0t \ 0p \ 0- \ 0e \ 0q \ 0u \ 0i \ 0v \ 0 = \ 0 \“\ 0C \ 0o \ 0N \0吨\ 0E \ 0N
这是一个HTML文件,除了的第一个字符一个有效的开端。该文件可能由于在开始时丢失了unicode标记而被损坏。这种损坏可能是由于写入造成的,现在不容易修复。
您可以尝试将WebClient.Encoding设置为UTF8(并尝试使用几个ASCII码)。
@Henk Holterman ..只有一个文件可能被损坏,但是有两个文件显示为<\ 0h \ 0t \ 0m \ 0l \ 0> \ 0 <\ 0h \ 0e \ 0a \ 0d \ 0> \ 0 \ r \ 0 \ n \ 0 <\ 0M \ 0E \ 0T \ 0A \ 0 \ 0h \ 0t \ 0t \ 0p \ 0- \ 0e \ 0q \ 0u \ 0i \ 0v \ 0 = \ 0 \“\ 0C \ 0o \ 0n \ 0t \ 0e \ 0n。 无法读取这两个文件 – Harikrishna 2010-03-15 12:58:09
请使用ReadAllBytes(它工作)并将前10个字节作为十六进制发布 – 2010-03-15 13:04:00
为什么不能损坏另一个文件? – 2010-03-15 13:06:31
MsgBox是否显示任何内容?任何错误? varText.Length显示什么?
string varText = File.ReadAllText(varFile, Encoding.Default);
MessageBox.Show(varFile + " Text: " + varText + " Lenght: " + varText.Length);
验证在MessageBox中的文件路径是否正确,确认您的应用程序内的访问权限是一样的,如果你会读用记事本文件。
@ MadBoy..In messagebox中只显示文本或长度的路径,只有一个其他符号显示路径为<。 – Harikrishna 2010-03-15 12:03:03
@MadBoy ..在消息框中显示的路径是正确的。 – Harikrishna 2010-03-15 12:04:27
你可以发布html文件吗? – MadBoy 2010-03-15 12:39:01
最近在谷歌上遇到这个问题。做正确的方法是通过Web客户端...
WebClient client = new WebClient();
String guestMsg = client.DownloadString("C:\\temp\\TheBarGuestDetailsEmail.htm");
File.ReadAllText会陷入困境,当它做一个阅读HTML和字符,如£或“会搞的一团糟。
也许这是一个二进制文件,你需要使用'ReadAllBytes'来代替? – 2010-03-15 11:41:53
请给出一些细节。阅读该文件是否会引发异常?如果不是,你怎么知道它没有被完全读取? – 2010-03-15 11:41:54
当你用记事本打开文件时你能看到任何东西? – MadBoy 2010-03-15 11:43:20