Ошибка доступа к файлу - C# (187939)

Узнай цену своей работы

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

Здравствуйте! Есть асинхронный сервер по сбору данных. Необходимо все получаемые данные писать в файл. Если файл создан, то никаких проблем не происходит. Но если файла нет, то вылетает ошибка что файл занят другим процессом, при этом файл создается но в его не идет запись пока не перезапустить прогу. Может кто-нибудь сталкивался с данной проблемой? Пример функции записи в файл ниже.
        private void TestWriteFile(Object obj)
        {
            try
            {
                lock (thisLock)
                {
                    DateTime dtDateTime = DateTime.Now;
                    String str = dtDateTime.ToLongTimeString() + "   " + (String)obj;
                    string FileName = "TestWriteFile.txt";
 
                    if (!File.Exists(FileName))
                    {
                        File.Create(FileName);
                    }

                    FileStream fFile = new FileStream(FileName, FileMode.Append, FileAccess.Write);
                    BufferedStream bufStream = new BufferedStream(fFile);
                    StreamWriter sWrite = new StreamWriter(bufStream);
 
                    for (int i = 0; i < 10; i++)
                    {
                        sWrite.WriteLine(str);
                    }
 
                    sWrite.Flush();
                    sWrite.Close();
                }
            }
            catch (Exception ex)
            {                
                MessageBox.Show(ex.Message);
            }
        }

Решение задачи: «Ошибка доступа к файлу»

textual
Листинг программы
using (FileStream fFile = new FileStream(FileName, FileMode.Append, FileAccess.Write))
using (BufferedStream bufStream = new BufferedStream(fFile))
using (StreamWriter sWrite = new StreamWriter(bufStream))
{
    for (int i = 0; i < 10; i++)
    {
        sWrite.WriteLine(str);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы