如何读取包含行的某些文本,然后将此文本附加到缺少此文本行的多个文件中?

时间:2009-10-13 06:42:47

标签: c# file-io

我有多个带* .mol扩展名的文件。在其中一些中的最后一行中有“M END”文本。我需要一个程序读取所有这些文件,在该文件中搜索“M END”行,并将这个“M END”写入文件末尾没有“M END”行的那些文件。 我编写了以下C#代码,但它不起作用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;


namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {   
            foreach (string fileName in Directory.GetFiles("C:\\abc\\", "*.mol")) 
            {

                System.IO.StreamReader file = new System.IO.StreamReader(fileName);                       
                if ((file.ReadLine()) != ("M  END"))
                {
                    File.AppendAllText(fileName, "M  END" + Environment.NewLine);

                }


            }

        }
    }
}

请帮帮我! 谢谢你的所有答案。

1 个答案:

答案 0 :(得分:1)

如果您的文件不大,可以试试这个

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;


namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (string fileName in Directory.GetFiles("C:\\abc\\", "*.mol"))
            {
               bool shouldAddMEnd = false;
               using (System.IO.StreamReader sw = new System.IO.StreamReader(fileName))
               {
                   shouldAddMEnd = !sw.ReadToEnd().EndsWith("M  END");                        
               } 
               if (shouldAddMEnd)
                   File.AppendAllText(fileName, "M  END" + Environment.NewLine);
             }
         }
    }
}