【问题标题】:java applet - delete ("java.io.tmpdir")+"myfolder" contents on closing applet or stop()java applet - 在关闭 applet 或 stop() 时删除 ("java.io.tmpdir")+"myfolder" 内容
【发布时间】: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


【解决方案1】:
File directory = new File (System.getProperty("java.io.tmpdir")+"JarClassLoader");

应该是:

File directory = new File (System.getProperty("java.io.tmpdir"), "JarClassLoader");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    相关资源
    最近更新 更多