我试图在C#中创建一个引擎来读取我的文本文件的一部分 这是文本文件的一部分
ver:14
D:\\demopath
2013-07-26 10:18a 53 config.ini
2013-09-16 10:28a 7289119 data.res
2010-03-25 01:49a 41472 Dsetup.dll
2013-09-15 11:41p 7094272 demo.exe
2013-06-14 10:41P 4454454 lib\filetest.txt
并且我还希望引擎跳过前两行并且只获取文件的行部分并在CMD控制台中显示它但是每次我只获得整行而不是文件时它会失败
int counter = 0;
StreamReader file = new StreamReader("test.txt");
while ((line = file.ReadLine()) != null)
{
if (line == "ver:11")
{
counter = counter + 2;
}
else
{
Console.WriteLine(line);
counter++;
}
}
file.Close();
感谢Selman22
现在
var lines = File.ReadAllLines("test.txt").Skip(2).ToList();
foreach(var line in lines)
Console.WriteLine(line);
答案 0 :(得分:0)
您可以像这样使用File.ReadAllLines
:
var lines = File.ReadAllLines("test.txt").Skip(2).ToList();
foreach(var line in lines)
{
var fileName = line.Split(new char[] { ' ' },StringSplitOptions.RemoveEmptyEntries)[3]
Console.WriteLine(fileName.Replace("\\","/"));
}
不需要旧样式,StreamReader
,while loop
等。在此代码中,您使用单个方法读取所有行,并使用Enumerable.Skip
扩展方法跳过前两行。
答案 1 :(得分:0)
只需调用两次ReadLine函数并开始读取数据。
file.ReadLine();
file.ReadLine();
while ((line = file.ReadLine()) != null)
{
Console.WriteLine(line);
counter++;
}