StreamReader.ReadToEnd returns 文件路径
StreamReader.ReadToEnd returns file path
我对 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;
}
}
这是我用来在特定文件中查找作品的代码。
问题是sr.ReadToEnd(还有ReadLine)returns 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"
谁能看出我做错了什么?
您正在使用 StringReader 而不是 StreamReader
StringReader 实现了一个从 string
中读取的 TextReader
StramReader 实现了一个 TextReader,它以特定的编码
从 字节流 中读取字符
如果您想从文件中读取,请使用此 constructor for StreamReader
如果文件很小并且您有足够的资源一次读取它,您也可以使用 File.ReadAllText
有关更全面的概述,请参阅this 文章
我对 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;
}
}
这是我用来在特定文件中查找作品的代码。 问题是sr.ReadToEnd(还有ReadLine)returns 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"
谁能看出我做错了什么?
您正在使用 StringReader 而不是 StreamReader
StringReader 实现了一个从 string
中读取的 TextReaderStramReader 实现了一个 TextReader,它以特定的编码
从 字节流 中读取字符如果您想从文件中读取,请使用此 constructor for StreamReader
如果文件很小并且您有足够的资源一次读取它,您也可以使用 File.ReadAllText
有关更全面的概述,请参阅this 文章