我正在尝试替换多个文件中的特定字符串。这些文件是从特定来源读取的。我想要的是逐行读取这些文件,在每一行中找到我想要的字符串并用其他字符串替换它们。
到目前为止,我已经想出了这个。这是有效的,但下面代码的问题是它非常非常慢。
我得出的结论是,这是因为我的做法是将所有文本加载到内存中并一次全部写入。现在我该如何逐行执行此操作?
static void Main()
{
const string dir_source = "d:\\myfiles";
var files = Directory.GetFiles(dir_source, "*", SearchOption.AllDirectories);
foreach (var file in files)
{
var extension = Path.GetExtension(file);
var str_old = "Google";
var str_new = "Alphabet";
if (extension == ".cs" || extension == ".xaml")
{
File.WriteAllText(file,
File.ReadAllText(file)
.Replace(str_old , str_new));
}
}
Console.WriteLine("Completed");
Console.ReadKey();
}