Закрытие и освобождение файла после использования

 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;

При повторном использовании ошибка:

Процесс не может получить доступ к файлу, так как другой процесс использует файл

Как освободить использование файла, чтобы включить повторное использование?

Чтобы убедиться, что он снимает блокировку, вручную переименуйте файл, вы получите сообщение об ошибке, если файл все еще заблокирован.

script0 20.11.2022 14:41

Вы должны использовать оператор using для StreamWriter точно так же, как и для MemoryStream. Вы должны делать это для ВСЕХ одноразовых объектов, используемых в ограниченной области.

jmcilhinney 20.11.2022 14:43

Тогда я могу только заключить, что вы открываете этот файл где-то еще. Если ваша система не повреждена, выход из используемого блока гарантированно закроет файл, поэтому, если он открыт, это делает не тот код.

jmcilhinney 21.11.2022 01:05
Шаблоны Angular PrimeNg
Шаблоны Angular PrimeNg
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной...
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Начала с розового дизайна
Начала с розового дизайна
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских...
Шлюз в PHP
Шлюз в PHP
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
1
3
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно использовать этот шаблон везде, где вы работаете с файлом:

    using (_httpClient = new HttpClient())
{
//code to do
}

Другие вопросы по теме