我正在使用java-libpst.0.7.jar读取PST消息。我正在使用以下代码打开PST文件以阅读消息。
PSTFile pstFile = new PSTFile("Path of the pst file");
获取消息详细信息后,我必须关闭PST文件。但是没有关闭PST文件的选项。我怎样才能做到这一点?
最佳答案
通过阅读代码,很明显libpst确实没有公开“关闭”方法。当finalize()
被垃圾回收时,PSTFile
方法确实关闭了底层文件,因此我建议在尽可能小的范围内使用它并尽快处理它,但除此之外,您无能为力(除了reporting an issue to the project-或更好的是,当然,您可以自己发送补丁)。
编辑1:PSTFile
有一个getFileHandle()
方法,该方法返回基础文件,因此您可以使用close()
:
PSTFile pstFile = new PSTFile("Path of the pst file");
// use the file
pstFile.getFileHandle().close();
编辑2:
我创建了一个pull request来添加
PSTFile.close()
。让我们看看它如何散开。编辑3:
我的请求请求已合并(感谢Richard Johnson!)。在下一个发行版中(或者如果您自己构建java-libpst),您将能够直接在
close()
上调用PSTFile
。