首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确关闭PDFTron使用的文件?

如何正确关闭PDFTron使用的文件?
EN

Stack Overflow用户
提问于 2020-04-20 20:05:33
回答 2查看 266关注 0票数 1

以下代码会导致System.InvalidOperationException,因为存在问题的文件仍在使用中。PDFTron文档中没有关于如何关闭文件的明确指导,但以下是例外情况:

代码语言:javascript
复制
// in my dispose method. _pdfViewWpf is a pdftron.PDF.PDFViewWPF, and _pdfPath is the filepath I set the doc to. 
_pdfViewWpf.CloseDoc();
_pdfViewWpf.Dispose();

File.Move(_pdfPath, @"C:\myFilePath\Test.pdf");

为了使PDFTron正确地释放和关闭文件,我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-20 20:05:33

我在PDFDoc上缺少了一个Dispose()调用,该调用被设置为PDFViewWPF上的Doc。我将它保存在私有成员变量中:

代码语言:javascript
复制
_pdfDoc = new PDFDoc(pdfPath);

并将这一行添加到我的dispose方法中:

代码语言:javascript
复制
_pdfViewWpf.CloseDoc();
_pdfViewWpf.Dispose();
if (_pdfDoc != null) _pdfDoc.Dispose();

File.Move(_pdfPath, @"C:\myFilePath\Test.pdf");

现在,File.Move方法在不引发异常的情况下工作。

票数 2
EN

Stack Overflow用户

发布于 2020-04-20 20:57:32

感谢您对我们的指导意见,我们将期待改进这一部分。我们的示例项目中确实有大量的示例代码,因此您也可以在实践中看到如何做一些事情。

对于非交互式PDF处理,using语句是确保文件句柄和内存在使用PDFDoc实例时立即释放的最简单方法。

要进行交互式查看,可以执行以下操作。

代码语言:javascript
复制
PDFDoc oldDoc = _pdfViewWpf.GetDoc();
_pdfViewWpf.CloseDoc();
// or instead of above line, if you want to reuse the viewer call 
//_pdfViewWpf.SetDoc(otherPDFDoc);
if(oldDoc != null) oldDoc.Close();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61331113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档