【发布时间】:2012-06-21 06:30:51
【问题描述】:
我正在尝试清除我在 java.io.tmpdir 中编写的 myfolder 内容(有一些 jar),以供小程序临时使用。 现在,当我尝试使用以下代码删除 void stop() 方法上的内容(jar)时:
public void stop()
{
File directory = new File (System.getProperty("java.io.tmpdir")+"JarClassLoader");
// Get all files in directory
File[] files = directory.listFiles();
for (File file : files)
{
// Delete each file
if (!file.delete())
{
// Failed to delete file
}
}
}
它没有清除任何东西,或者操作系统可能正在保存这些 jar。每次我运行一个小程序,这些罐子不断增加..有什么办法可以在小程序停止时删除这些内容?
【问题讨论】:
-
它是否进入
// Failed to delete file块?你确定你没有从那些 jar 中保存一些东西(比如在你的 JVM 中执行类)吗? -
需要了解很多才能给出合理的答案。发布SSCCE。并且请对代码块使用一致且合乎逻辑的缩进。
-
是的,在我注销并重新登录我的应用程序之前,删除文件块会失败。重新登录并第一次加载小程序后,它将删除 void stop() 上的所有先前文件。但是对于同一个会话,即使我手动尝试删除那些 jar 文件..我做不到,Windows 操作系统已经对它们进行了保留..我想知道,我已经从小程序迁移走了。 .den 为什么操作系统仍然持有这些 jar 的..有没有办法通过覆盖 void destroy() 方法来释放或清理小程序正在使用的所有临时内容?
-
当您将 SSCCE 放在一起时,我会更仔细地研究它。顺便说一句 - 将 @PersonName 添加到 cmets 以通知该人有新评论。
标签: java file applet java-io temporary-files