C# System.IO.File.ReadAllText(路径)不读取html文件

C# System.IO.File.ReadAllText(路径)不读取html文件,c#,.net,winforms,file,C#,.net,Winforms,File,我想读取html文件。为此,我使用System.IO.file.ReadAllText(path)。它可以读取所有html文件,但有一个文件不能通过此函数读取 我也用过 使用(StreamReader=File.OpenText(文件名)){ text=reader.ReadToEnd();但仍然存在相同的问题 原因是什么?解决方案是什么?或者其他读取文件的方法是什么?我猜一猜: 该文件包含扩展字符的unicode序列,诊断基于(不匹配的)长度 如果我在中调试代码,它看起来 喜欢 “\0\0\r

我想读取html文件。为此,我使用System.IO.file.ReadAllText(path)。它可以读取所有html文件,但有一个文件不能通过此函数读取

我也用过

使用(StreamReader=File.OpenText(文件名)){ text=reader.ReadToEnd();但仍然存在相同的问题

原因是什么?解决方案是什么?或者其他读取文件的方法是什么?

我猜一猜:
该文件包含扩展字符的unicode序列,诊断基于(不匹配的)长度

如果我在中调试代码,它看起来 喜欢 “\0\0\r\0\n\0我猜一猜:
该文件包含扩展字符的unicode序列,诊断基于(不匹配的)长度

如果我在中调试代码,它看起来 喜欢
“\0\0\r\0\n\0MsgBox是否显示任何内容?任何错误?varText.Length显示什么内容

string varText = File.ReadAllText(varFile, Encoding.Default); 
MessageBox.Show(varFile + " Text: " + varText + " Lenght: " + varText.Length);

在MessageBox中验证文件路径是否正确,验证应用程序内部的访问权限是否与使用记事本读取文件相同。

MsgBox是否显示任何内容?是否有错误?varText.Length显示什么内容

string varText = File.ReadAllText(varFile, Encoding.Default); 
MessageBox.Show(varFile + " Text: " + varText + " Lenght: " + varText.Length);

在MessageBox中验证文件路径是否正确,验证应用程序内部的访问权限是否与使用记事本读取文件的权限相同。

最近在google上遇到过此问题。正确的方法是通过WebClient

WebClient client = new WebClient();
String guestMsg = client.DownloadString("C:\\temp\\TheBarGuestDetailsEmail.htm");

File.ReadAllText在进行读取时会弄乱html,像“%或”这样的字符也会弄乱。

最近在google上遇到过这个问题。正确的方法是通过WebClient

WebClient client = new WebClient();
String guestMsg = client.DownloadString("C:\\temp\\TheBarGuestDetailsEmail.htm");


File.ReadAllText在读取时会弄乱html,像“%或”这样的字符会弄乱。

可能是一个二进制文件,您需要使用
ReadAllBytes
?请提供一些详细信息。读取该文件是否会引发异常?如果不是,您如何知道它没有被完全读取?当您使用notep打开文件时你能看到什么吗?@Henk Holterman..因为我像字符串s;s=System.IO.File.ReadAllText(文件路径);s中没有任何内容。如果该文件是用记事本打开的,则其中包含所有文本。@MadBoy.用记事本打开该文件,我们可以看到所有内容。可能是二进制文件,您需要使用
ReadAllBytes
?请提供一些详细信息。读取该文件是否会引发异常?如果不是,您如何知道它不是读取com完全?当你用记事本打开文件时,你能看到任何东西吗?@Henk Holterman..因为我像字符串s;s=System.IO.file.ReadAllText(文件路径)那样做;s中没有任何内容。如果该文件是用记事本打开的,则其中包含所有文本。@MadBoy..用记事本打开该文件,我们可以看到所有内容。@MadBoy..在messagebox中,仅显示路径,不显示文本或长度,仅显示另一个符号,路径为<。您能将html文件发布到某处吗?另外,请检查不同的编码(更改编码。默认为其他内容)。@MadBoy..在messagebox中,仅显示路径,不显示文本或长度的其他内容,仅显示另一个符号,路径为<。能否将html文件发布到某个位置?还请检查不同的编码(更改编码。默认为其他内容).@Henk Holterman..只能损坏一个文件,但有两个文件显示为\0\0\r\0\n\0请使用ReadAllBytes(它可以工作)并将前10个字节以十六进制形式发布。为什么另一个文件不能被损坏?@Henk holterman.谢谢你的回答。两个文件都被损坏了,这是一个完美的答案。我已将该文件的html内容复制到新的记事本文件中,并将该文件保存为html文件,现在可以读取具有相同html内容的新文件。@Henk holterman。。但是,是否有任何文件由于安全原因而无法读取。也就是说,是否有任何网页由于安全原因或其他原因而无法读取其html内容。@Henk Holterman..只能损坏一个文件,但有两个文件显示为\0\0\r\0\n\0请使用ReadAllBytes(它确实有效)并将前10个字节以十六进制形式发布。为什么另一个文件不能被损坏?@Henk holterman.谢谢你的回答。两个文件都被损坏了,这是一个完美的答案。我已将该文件的html内容复制到新的记事本文件中,并将该文件保存为html文件,现在可以读取具有相同html内容的新文件。@Henk holterman。。但是否有任何文件是基于保安理由而不能阅读的呢?即是否有任何网页是基于保安理由或其他原因而不能阅读其html内容呢。