如何在Java中关闭PST文件?

2022-09-02 05:27:04

我正在使用java-libpst.0.7.jar来阅读PST消息。我正在使用以下代码打开PST文件以读取消息。

PSTFile pstFile = new PSTFile("Path of the pst file");

在获得消息详细信息后,我必须关闭PST文件一次。但是没有关闭 PST 文件的选项。我该怎么做?


答案 1

通过阅读代码,很明显libpst确实没有公开“close”方法。当 垃圾回收时,该方法确实会关闭基础文件,因此我建议在尽可能小的范围内使用它并尽快处理它,但除此之外,您无能为力(除了向项目报告问题 - 或者更好的是,自己发送补丁,当然)。finalize()PSTFile

编辑1:
有一个返回基础文件的方法,所以你可以:PSTFilegetFileHandle()close()

PSTFile pstFile = new PSTFile("Path of the pst file");
// use the file
pstFile.getFileHandle().close();

编辑2:
我已经创建了一个拉取请求来添加.让我们看看它是如何扇形的。PSTFile.close()

编辑3:
我的拉取请求已被合并(谢谢理查德约翰逊!在下一个版本中(或者如果您自己构建java-libpst),您将能够直接调用。close()PSTFile


答案 2

PSTFile在其方法中关闭文件句柄,以便在垃圾回收时关闭文件。我不认为这种清理资源是很好的风格,因为可能会很久以后甚至永远不会被调用。finalizePSTFilefinalize


推荐