StreamWriter стирает файл

124
24 января 2021, 18:40

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

private void _ReplaceProperties(string needfor, string replacefor)
            {
                string text = File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Mineserv\\Servers\\" + textBox1.Text + "\\server.properties");
                using (StreamReader sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Mineserv\\Servers\\" + textBox1.Text + "\\server.properties"))
                {
                    string line;
                    while((line = sr.ReadLine())!= null)
                    {
                        if(line.Contains(needfor))
                        {
                            replaceline = line;
                        }
                    }
                }
                text = text.Replace(replaceline, replacefor);
                using (StreamWriter sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Mineserv\\Servers\\" + textBox1.Text + "\\server.properties"))
                {
                    sw.Write(text);
                    sw.Close();
                }
            }

Тоесть в файле есть строка online-mode=true и я должен прописать метод _ReplaceProperties("online", "online-mode=false"); Но файл после данного процесса становится пустым.

Answer 1

Совершенно непонятно, зачем вы дважды получаете информацию из одного и того же файла: с помощью File.ReadAllText и с помощью StreamReader.

Вообще, если я правильно понял, ваш код прекрасно заменяется этим:

private void ReplaceProperties(string needfor, string replacefor)
{
    string text = File.ReadAllText(path);
    string replaced = text.Replace(needfor, replacefor);
    File.WriteAllText(path, replaced);
}
READ ALSO
Удаление и обнуление EF Core

Удаление и обнуление EF Core

Не понимаю в чем проблема

140
управление свайпом для игры Unity Runner [дубликат]

управление свайпом для игры Unity Runner [дубликат]

Я делаю руннер игру на Android с использованием C # и УнитиЯ пытаюсь сделать управление с свайпом, но код не работает должным образом

117
Задача на построение расписания

Задача на построение расписания

Есть такая задача: 30 работников отметили дни в которые они бы хотели работать ,а в какие отдыхать

101
C# htmlAgilityPack как получить строку в теге strong

C# htmlAgilityPack как получить строку в теге strong

У меня есть такой xPath локатор

103