如何询问 JVM 文件是否已通过 File.deleteOnExit() 标记为删除?

问题描述 投票:0回答:1

我有 Java 代码,可以通过

File.deleteOnExit()
标记要删除的文件。效果很好。我有一个 JUnit 测试设置来检查这些文件是否已被删除。当然,此检查会失败,因为执行检查时单元测试 JVM 尚未终止。

有没有办法询问这些文件是否会被 JVM 删除?

java junit jvm delete-file
1个回答
0
投票

伙计,如果我再等一会儿就好了……

这有效:

Field field = Class.forName("java.io.DeleteOnExitHook").getDeclaredField("files");
field.setAccessible(true);
@SuppressWarnings("unchecked")
LinkedHashSet<String> files = (LinkedHashSet<String>)field.get(null);

然后我可以检查该集合并查看其中是否包含我的文件。

© www.soinside.com 2019 - 2024. All rights reserved.