From c3737ca73ffc8f3892fa65b37ba7ef8d5bc427d0 Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Sat, 3 May 2003 00:45:36 +0000 Subject: [PATCH] Register a shutdown hook to destroy the resource cache directory when the JVM exits. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2539 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../threerings/resource/ResourceManager.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/java/com/threerings/resource/ResourceManager.java b/src/java/com/threerings/resource/ResourceManager.java index 8d39af63f..1e157b280 100644 --- a/src/java/com/threerings/resource/ResourceManager.java +++ b/src/java/com/threerings/resource/ResourceManager.java @@ -1,5 +1,5 @@ // -// $Id: ResourceManager.java,v 1.25 2003/04/27 03:27:33 mdb Exp $ +// $Id: ResourceManager.java,v 1.26 2003/05/03 00:45:36 ray Exp $ package com.threerings.resource; @@ -171,6 +171,29 @@ public class ResourceManager "won't be able to create our cache directory " + "either. [error=" + se + "]."); } + + // Add a hook to blow away the temp directory when we exit + Runtime.getRuntime().addShutdownHook(new Thread() { + public void run () + { + File dir = ResourceBundle.getCacheDir(); + Log.info("Deleting narya temp cache directory '" + dir + "'."); + recursiveDelete(dir); + } + + protected void recursiveDelete (File file) + { + if (file.isDirectory()) { + File[] files = file.listFiles(); + for (int ii = 0; ii < files.length; ii++) { + recursiveDelete(files[ii]); + } + } + if (!file.delete()) { + Log.warning("Failed to delete " + file + "."); + } + } + }); } /**