try
{
using (MemoryStream stream = new MemoryStream())
{
path = Server.MapPath(@"\\Files\\" + "file.txt");
StreamWriter tw = new StreamWriter(path, false, Encoding.GetEncoding("windows-1255"));
tw.Write("Hello dear file");
tw.Flush();
tw.Close();
tw.Dispose();
stream.Close();
stream.Dispose();
}
}
catch (Exception ex)
{
string msg = ex.Message;// Error
return null;
}
return path;
При повторном использовании ошибка:
Процесс не может получить доступ к файлу, так как другой процесс использует файл
Как освободить использование файла, чтобы включить повторное использование?
Вы должны использовать оператор using
для StreamWriter
точно так же, как и для MemoryStream
. Вы должны делать это для ВСЕХ одноразовых объектов, используемых в ограниченной области.
Тогда я могу только заключить, что вы открываете этот файл где-то еще. Если ваша система не повреждена, выход из используемого блока гарантированно закроет файл, поэтому, если он открыт, это делает не тот код.
Вам нужно использовать этот шаблон везде, где вы работаете с файлом:
using (_httpClient = new HttpClient())
{
//code to do
}
Чтобы убедиться, что он снимает блокировку, вручную переименуйте файл, вы получите сообщение об ошибке, если файл все еще заблокирован.