读取行并删除C#中的部分行

时间:2014-01-12 19:29:32

标签: c#

我试图在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);

2 个答案:

答案 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("\\","/"));
 }

不需要旧样式,StreamReaderwhile loop等。在此代码中,您使用单个方法读取所有行,并使用Enumerable.Skip扩展方法跳过前两行。

答案 1 :(得分:0)

只需调用两次ReadLine函数并开始读取数据。

file.ReadLine();
file.ReadLine();

while ((line = file.ReadLine()) != null)
{  
    Console.WriteLine(line);
    counter++;
}