Удалить строку из текстового файла - PullRequest
2 голосов
/ 25 октября 2011

Я создаю программу, которая переходит на веб-сайт (список веб-сайтов загружается из текстового файла), выполняет некоторые задачи и после этого переходит на следующий веб-сайт из текстового файла.

Это работает, но теперь мне нужно удалить строку (веб-сайт) из файла после того, как программа завершит работу с ним. Как я могу это сделать?

Вот мой код для загрузки TXT с веб-сайтов:

DialogResult result = openFileDialog1.ShowDialog();
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    System.IO.StreamReader sr = new
    System.IO.StreamReader(openFileDialog1.FileName);
    text = sr.ReadToEnd();
    split = text.Split(new Char[] {'\n' });
}

1 Ответ

4 голосов
/ 25 октября 2011

Вместо разделения проще использовать File.ReadAllLines или - из .NET 4 - File.ReadLines.Последний читает построчно, так что вы можете использовать:

var linesToKeep = File.ReadLines(file)
                      .Where(line => line != lineYouWantToRemove)
                      .ToArray();

File.WriteAllLines(file, linesToKeep);

(Конечно, это будет работать и с ReadAllLines - вы просто получите больше памяти за раз.)

Обратите внимание, что использование методов File.* означает, что вам не нужно беспокоиться о написании операторов using для закрытия ресурсов и т. Д., Чего вы не делаете в своем примере кода.(Вы никогда не закрываете дескриптор файла ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...