Я использую OpenXML SDK для создания и сохранения текстового документа.
Я использую блок «Использование» для создания и удаления потока памяти и текстового объекта документа, когда они завершены. Однако при попытке открыть файл я получаю сообщение об ошибке, что файл все еще используется другим процессом.
Глядя на Resource Monitor, я смог обнаружить, что это мое приложение на c #, которое по-прежнему остается открытым.
Когда я закрываю свое приложение, я могу использовать файл
У меня есть следующий код.
private void button2_Click(object sender, EventArgs e)
{
// Create Stream
using (MemoryStream mem = new MemoryStream())
{
// Create Document
using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true))
{
// Add a main document part.
MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();
// Create the document structure and add some text.
mainPart.Document = new Document();
Body docBody = new Body();
mainPart.Document.Append(docBody);
wordDocument.SaveAs(@"E:\Report\word.docx");
// Add your docx content here
wordDocument.Close();
}
}
}
Правильно ли я понимаю, что
using (MemoryStream mem = new MemoryStream())
должен утилизировать MemoryStream после завершения блока и, следовательно, разрешить использование файла другим процессом?
Спасибо