我正在使用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

10-07 13:57