@vchpro

Невозможно получить доступ к закрытому файлу?

private void button2_Click(object sender, EventArgs e)
        {
            FileStream fs = new FileStream(label1.Text, FileMode.Open);
            StreamWriter w = new StreamWriter(fs, Encoding.Default);
           
            for (int i = 0; i < richTextBox1.Lines.Length; i++)
            {
                /* StreamWriter f = new StreamWriter(label1.Text);
                f.WriteLine(richTextBox1.Lines[i]);
                f.Close(); */
                w.WriteLine(richTextBox1.Lines[i]);
              
            }
            fs.Close();
            w.Close();
           
        }


5e9098f8c298a703693633.jpeg
  • Вопрос задан
  • 139 просмотров
Решения вопроса 2
edward_freedom
@edward_freedom
Поменять местами с
fs.Close();
w.Close();

На
w.Close();
fs.Close();
Ответ написан
@Sumor
Используйте using и вам не нужно будет беспокоиться о закрытии потока/писателя.
Close будет вызываться автоматически, даже в случае исключений.
using(FileStream fs = new FileStream(label1.Text, FileMode.Open))
{
     using(StreamWriter w = new StreamWriter(fs, Encoding.Default))
     {           
            for (int i = 0; i < richTextBox1.Lines.Length; i++)
            {
                w.WriteLine(richTextBox1.Lines[i]);              
            }
     }
}


NB: У StreamWriter есть конструктор, который сразу принимает имя файла для записи - в этом случае будет один using.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы