Я пишу небольшое приложение для экспорта и импорта данных из базы данных, используя .NET DataSets и XML, и как часть этого я делаю следующее.
StreamWriter sw = new StreamWriter(file);
sw.Write(xml.OuterXml);
sw.Close();
Проблема в том, что метод close закрывает FileStream (параметр файла, переданный в конструктор), но не снимает блокировку файла. Этот файл создается программой, которую я написал, поэтому я знаю, что больше ничего не блокирует его.
Я что-то не так делаю или это ошибка Windows?
EDIT
Да 'file' - это объект FileStream, и я наивно полагал, что вызов close () для потока, который обертывает поток файлов, также очистит и удалит базовый поток файлов, вызвав метод FileStream.close. Но я больше не уверен в этом.
Оборачивание в блок использования все еще имеет тот же эффект.
Еще одно замечание: объект файлового потока создается другим методом, но это не должно иметь никакого значения