我有多个带* .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);
}
}
}
}
}
请帮帮我! 谢谢你的所有答案。
答案 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);
}
}
}
}