Запись в файл - C#

Формулировка задачи:

Есть такой код
string path = String.Format(@"C:\SomeDir\ggg.txt"); 
               FileInfo fileInf = new FileInfo(path);
 
                if (!fileInf.Exists)
 
                {
                    fileInf.Create();
 
                StreamWriter swExtLogFile = new StreamWriter(path, true);
 
                int i;
                swExtLogFile.Write(Environment.NewLine);
                foreach (DataRow row in _dataTable.Rows)
                {
                    object[] array = row.ItemArray;
                    for (i = 0; i < array.Length - 1; i++)
                    {
 
                        swExtLogFile.Write(array[i].ToString().Replace(",", ".") + ",");
                    }
                    swExtLogFile.WriteLine(array[i].ToString());
                }
 
                swExtLogFile.Flush();
                swExtLogFile.Close();
 
            }
Я записываю из _dataTable данные в файл Но после компиляции выдает такое сообщение: нельзя получить доступ к файлу, так как файл "C:\SomeDir\ggg.txt" используется в другом процессе... Второй раз при нажатии кнопки все нормально записывается. Помогите, в чем проблема?

Код к задаче: «Запись в файл - C#»

textual
string path = String.Format(@"C:\SomeDir\ggg.txt");
using (StreamWriter swExtLogFile = new StreamWriter(path, true))
{
    int i;
    swExtLogFile.Write(Environment.NewLine);
    foreach (DataRow row in _dataTable.Rows)
    {
        object[] array = row.ItemArray;
        for (i = 0; i < array.Length - 1; i++)
        {
 
            swExtLogFile.Write(array[i].ToString().Replace(",", ".") + ",");
        }
        swExtLogFile.WriteLine(array[i].ToString());
    }
}

6   голосов, оценка 4.333 из 5


СОХРАНИТЬ ССЫЛКУ