我正在开发一款WPF应用程序,可以打开并显示XPS文档。当应用程序关闭时,规范要求应该删除已经打开的XPS文档以进行清理。但是,当打开某个特定的XPS文档时,应用程序会抛出异常,指出在尝试删除文件时文件仍在使用中。这有点奇怪,因为它只会在打开特定的XPS文档并且在第一页之后移动到其他页面时才会出现。
下面是我使用的一些代码:
打开XPS文档的代码:
DocumentViewer m_documentViewer = new DocumentViewer();
XpsDocument m_xpsDocument = new XpsDocument(xpsfilename, fileaccess);
m_documentViewer.Document = m_xpsDocument.GetFixedDocumentSequence();
m_xpsDocument.Close();
导航XPS文档:
m_documentViewer.FirstPage();
m_documentViewer.LastPage();
m_documentViewer.PreviousPage();
m_documentViewer.NextPage();
关闭DocumentViewer对象并删除文件的方法:
m_documentViewer.Document = null;
m_documentViewer = null;
File.Delete(xpsfilename);
这一切都非常基础,而且它与我们测试过的其他文档一起运行。但是对于特定的XPS文档,会弹出一个异常,称要删除的文件仍在使用中。
我的代码有什么问题或遗漏吗?
谢谢!