From 890a31f478d6c419093c54b53111809540f4b9c4 Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Mon, 4 Sep 2000 16:55:48 +0000 Subject: File.java (deleteOnExit): New method. * java/io/File.java (deleteOnExit): New method. * gnu/gcj/runtime/FileDeleter.java: New class. * java/lang/natRuntime.cc (exit): Call FileDeleter.deleteOnExitNow() * Makefile.am: Add FileDeleter.java. * Makefile.in: Rebuilt. From-SVN: r36141 --- libjava/java/io/File.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'libjava/java/io/File.java') diff --git a/libjava/java/io/File.java b/libjava/java/io/File.java index b9ff9ff..9043660 100644 --- a/libjava/java/io/File.java +++ b/libjava/java/io/File.java @@ -10,6 +10,9 @@ details. */ package java.io; +import java.util.*; +import gnu.gcj.runtime.FileDeleter; + /** * @author Tom Tromey * @date September 24, 1998 @@ -42,7 +45,7 @@ public class File implements Serializable return access (p, WRITE); } - private final native boolean performDelete (String canon); + private final native static boolean performDelete (String canon); public boolean delete () { SecurityManager s = System.getSecurityManager(); @@ -347,6 +350,17 @@ public class File implements Serializable return p; } + // Add this File to the set of files to be deleted upon normal + // termination. + public void deleteOnExit () + { + SecurityManager sm = System.getSecurityManager (); + if (sm != null) + sm.checkDelete (getName ()); + + FileDeleter.add (this); + } + // QUERY arguments to access function. private final static int READ = 0; private final static int WRITE = 1; -- cgit v1.1