Je travaille sur une application WPF qui ouvre et affiche des documents XPS. Lorsque l'application se ferme, la spécification est l'application doit supprimer le document XPS ouvert pour le nettoyage. Toutefois, lors de l'ouverture d'un certain document XPS, l'application lève une exception: le fichier est toujours utilisé lorsqu'il tente de le supprimer. C'est un peu bizarre, car cela ne se produit que lors de l'ouverture d'un document XPS particulier et seulement lorsque vous avez dépassé la première page.WPF DocumentViewer ne libère pas le fichier XPS
Certains codes I utilisés sont indiqués ci-dessous:
Pour ouvrir le XPS Document:
DocumentViewer m_documentViewer = new DocumentViewer();
XpsDocument m_xpsDocument = new XpsDocument(xpsfilename, fileaccess);
m_documentViewer.Document = m_xpsDocument.GetFixedDocumentSequence();
m_xpsDocument.Close();
Pour naviguer dans le document XPS:
m_documentViewer.FirstPage();
m_documentViewer.LastPage();
m_documentViewer.PreviousPage();
m_documentViewer.NextPage();
Pour fermer l'objet DocumentViewer et la suppression du fichier:
m_documentViewer.Document = null;
m_documentViewer = null;
File.Delete(xpsfilename);
Tout est assez basique et fonctionne avec les autres documents que nous avons testés. Mais avec le document XPS particulier, une exception apparaît, indiquant que le fichier à supprimer est toujours utilisé.
Y at-il quelque chose de mal ou manquant de mon code?
Merci!
Hey celui-ci a fonctionné! Je viens de laisser l'objet XpsDocument ouvert et seulement appelé XpsDocument.Close() pendant la sortie et j'ai été capable de supprimer le fichier. Merci les moogs! –
Cela ne fonctionne que si vous pouvez fermer votre application pour libérer le verrou. Si vous avez besoin du verrou libéré pendant que votre application reste ouverte, vous devrez voir ma réponse ci-dessous ou sur http://stackoverflow.com/questions/1442607/how-do-i-get-wpfs-documentviewer-to-release-its -file-lock-on-the-source-xps-docu –