StreamReader.ReadToEnd返回文件路径

And*_*s59 0 c# streamreader

我对StreamReader有一个奇怪的问题。我的程序是一个控制台程序,它应该遍历所有* .cs文件的目录结构。然后检查文件中是否有特定单词,并写入文件路径以输出。

using (StringReader sr = new StringReader(fPath))
{
    string content = sr.ReadLine(); // sr.ReadToEnd();
    Debug.WriteLine(content);
    int found = content.IndexOf(p);
    if (found != -1)
    {
        result = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我用来在特定文件中查找工作的代码。问题是sr.ReadToEnd(而且还有ReadLine)返回fPath的值而不是文件的内容!

该文件存在且未锁定。

如果fPath是:“ C:\ TEMP \ DC_LV1_LaMine_Mk2Plus_134_ix220_20160404 \ Alarm.Script.cs”

内容将为:“ C:\ TEMP \ DC_LV1_LaMine_Mk2Plus_134_ix220_20160404 \ Alarm.Script.cs”

谁能看到我做错了吗?

iro*_*e13 5

您正在使用字符串阅读器而不是阅读器

StringReader实现了从字符串读取的TextReader

StramReader实现了TextReader,该TextReader 以特定编码从字节流中读取字符

如果要从文件读取,请将此构造函数用于StreamReader

如果文件很小并且您有足够的资源可以一次全部读取,则也可以使用File.ReadAllText

为了更全面的概述,请参阅文章