Я пытаюсь заменить определенные строки в нескольких файлах. Эти файлы считываются из определенного источника. Я хочу читать эти файлы по строкам, находить нужные строки в каждой строке и заменять их другими строками.C#: Заменить строку в строке текста
До сих пор я придумал это. Это работает, но проблема с приведенным ниже кодом заключается в том, что он очень медленный.
Я пришел к выводу, что это связано с тем, как я это делаю, загружая весь текст в память и записывая все это сразу. Теперь, как я могу это сделать за строкой?
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();
}