Найдите строку внутри текстового файла и замените ее другой строкой

Я пытаюсь заменить строку в текстовом файле другой строкой. Например, текстовый файл может выглядеть следующим образом:

defaultServerList;data.dat
mcResSkin:something_that_can_vary.zip

Скажите, что я хочу заменить все, что находится после «mcResSkin:», на что-то другое, чтобы оно выглядело так:

mcResSkin:default.zip

Как я могу это сделать? Насколько я понял, вам нужно сначала прочитать весь файл, а затем снова записать его после внесения изменений. Но я не уверен, как сделать выше. Вот что у меня есть:

try
{
    var content = string.Empty;
    using (StreamReader reader = new StreamReader(selectedPath + "\\settings.txt"))
    {
         content = reader.ReadToEnd();
         reader.Close();
    }

    newcontent = Regex.Replace(something_to_replace_the_whole_line);

    using (StreamWriter writer = new StreamWriter(selectedPath + "\\settings.txt"))
    {
         writer.Write(newcontent);
         writer.Close();
    }
}
catch
{

}

person Daniel Jørgensen    schedule 12.11.2013    source источник
comment
Что не работает с кодом, который вы разместили?   -  person Tobberoth    schedule 12.11.2013
comment
Насколько велики файлы, поместится ли весь файл в памяти?   -  person Jodrell    schedule 12.11.2013
comment
Ваш подход действителен, хотя и не оптимален для больших файлов. Вы просите правильное регулярное выражение?   -  person Jonas Bötel    schedule 12.11.2013


Ответы (1)


Ответом на мой собственный вопрос было просто регулярное выражение, которое мне нужно было выяснить. Но мне удалось это сделать, используя следующее регулярное выражение

string newcontent = Regex.Replace(content, ".*mcResSkin:.*", "mcResSkin:default.zip\n");

Просто обновляю, чтобы другие видели

person Daniel Jørgensen    schedule 12.11.2013