我有 Java 代码,可以通过
File.deleteOnExit()
标记要删除的文件。效果很好。我有一个 JUnit 测试设置来检查这些文件是否已被删除。当然,此检查会失败,因为执行检查时单元测试 JVM 尚未终止。
有没有办法询问这些文件是否会被 JVM 删除?
伙计,如果我再等一会儿就好了……
这有效:
Field field = Class.forName("java.io.DeleteOnExitHook").getDeclaredField("files");
field.setAccessible(true);
@SuppressWarnings("unchecked")
LinkedHashSet<String> files = (LinkedHashSet<String>)field.get(null);
然后我可以检查该集合并查看其中是否包含我的文件。