Удаление определённой строки в файле

306
22 февраля 2017, 19:37

Ситуация такая: У меня есть файл, в нем записанны строки. Я пытаюсь найти строку по её содержанию и её удалить. Но проблема в том, что не могу найти в интернете как её удалить.
То-есть работа этого метода должна быть следующей:
Пользователь вводит логин, и по файлу идёт поиск, если находит, то он должен эту строку удалить.

Сам файл:

lol:9cdfb439c7876e703e307864c9167a15
you:91c366db3df8b21eeb76be5c250f1a40
kek:4cfdc2e157eefe6facb983b1d557b3a1
wewe:2a7d544ccb742bd155e55c796de8e511

Вот мой код:

public void DeleteUser()
{
    var log = EnterLogin();
    string path = ".htpasswd";
    string[] deluser = System.IO.File.ReadAllLines(path, Encoding.Default);
    foreach (string items in deluser)
    {
        if (items.Contains(log))
        {
        }
    }
}
Answer 1

Текстовый формат — потоковый, в нём невозможно выбросить часть из середины.

Читайте файл построчно, пишите в выходной (другой!) файл только нужные строки, потом удаляйте исходный файл и перенесите новый файл в позицию старого.

Альтернативным методом было бы читать файл по байту, запоминать текущую позицию чтения и записи, складывать байты через декодер кодировки в строку, при приходе конца строки проверять её, возможно, менять позицию записи, и отбрасывать в конце хвост. Поверьте, вам этого не хочется.

READ ALSO
WPF туннелирование событий

WPF туннелирование событий

Отрабатывает только событие OnDown3, а как заставить получить события от других канвасов?

264
Регулярное выражение вида “Maxim_Ivanov”

Регулярное выражение вида “Maxim_Ivanov”

1-ый раз работаю с регулярными выражениями

262
Заполнение двух combobox из одного файла

Заполнение двух combobox из одного файла

Добрый деньПомогите понять, как заполнить combobox с условием

305
Закрасить текст, слово, букву

Закрасить текст, слово, букву

Доброго времени суток

245