如何在应用程序完成工作后删除 ICEpdf 临时文件?

How to remove ICEpdf temporary files after application has finished working?

我使用 ICEpdf 库在我的桌面 java 应用程序中显示 PDF。应用程序在运行时向 PDF 添加注释,但不更改原始文件 — 更改仅在一个 'session' 期间显示。我最近发现应用程序创建了很多占用大量磁盘的临时文件 space.

方法org.icepdf.core.pobjects.Document.setInputStream有如下代码:

// Delete temp file on exit 
tempFile.deleteOnExit();

所以我想它必须在使用临时文件后删除它们,但它没有:

如何以编程方式删除应用程序在退出时创建的所有文件或使标准文件删除工作正常进行?

获取临时文件夹路径:

FileSystems.getDefault().getPath(System.getProperty("java.io.tmpdir"))

删除文件:

try (DirectoryStream<Path> paths = Files.newDirectoryStream(pathToDir, regex)){
        paths.forEach(path -> path.toFile().delete());
    } catch (IOException e) {
        // handle io exception
    }

其中正则表达式是文件名模式。在你的情况下:"IcePdf*"