< prev index next >
src/java.base/share/classes/java/io/File.java
Print this page
*** 1056,1071 ****
/**
* Requests that the file or directory denoted by this abstract
* pathname be deleted when the virtual machine terminates.
* Files (or directories) are deleted in the reverse order that
* they are registered. Invoking this method to delete a file or
! * directory that is already registered for deletion has no effect.
* Deletion will be attempted only for normal termination of the
* virtual machine, as defined by the Java Language Specification.
*
! * <p> Once deletion has been requested, it is not possible to cancel the
! * request. This method should therefore be used with care.
*
* <P>
* Note: this method should <i>not</i> be used for file-locking, as
* the resulting protocol cannot be made to work reliably. The
* {@link java.nio.channels.FileLock FileLock}
--- 1056,1077 ----
/**
* Requests that the file or directory denoted by this abstract
* pathname be deleted when the virtual machine terminates.
* Files (or directories) are deleted in the reverse order that
* they are registered. Invoking this method to delete a file or
! * directory that is already registered for deletion causes its
! * deletion registration reference count to be incremented and the
! * file registration order to be updated.
* Deletion will be attempted only for normal termination of the
* virtual machine, as defined by the Java Language Specification.
*
! * <p>
! * An invocation of this method may be cancelled by invoking
! * {@link #cancelDeleteOnExit()}. There must be exactly as many
! * cancellation as deletion requests however to unregister the file
! * or directory completely from eventual deletion. Cancellation which
! * doesn't unregister the file does not affect the order of deletion.
*
* <P>
* Note: this method should <i>not</i> be used for file-locking, as
* the resulting protocol cannot be made to work reliably. The
* {@link java.nio.channels.FileLock FileLock}
*** 1074,1083 ****
--- 1080,1090 ----
* @throws SecurityException
* If a security manager exists and its {@link
* java.lang.SecurityManager#checkDelete} method denies
* delete access to the file
*
+ * @see #cancelDeleteOnExit
* @see #delete
*
* @since 1.2
*/
public void deleteOnExit() {
*** 1086,1096 ****
security.checkDelete(path);
}
if (isInvalid()) {
return;
}
! DeleteOnExitHook.add(path);
}
/**
* Returns an array of strings naming the files and directories in the
* directory denoted by this abstract pathname.
--- 1093,1141 ----
security.checkDelete(path);
}
if (isInvalid()) {
return;
}
! DeleteOnExitHook.deleteOnExit(path);
! }
!
! /**
! * Cancels a request that the file or directory denoted by this abstract
! * pathname be deleted when the virtual machine terminates. Invoking this
! * method for a file or directory that is not already registered for
! * deletion throws exception. This method will cause the deletion registration
! * reference count of a registered file or directory to be decremented but
! * will not unregister it unless that count reaches zero neither will it
! * change the order of file registration.
! *
! * <p>
! * If a file or directory is registered for deletion but is explicitly
! * deleted before normal termination of the virtual machine, then it is
! * recommended to call this method to free resources used to track the
! * file for deletion.
! *
! * @throws SecurityException
! * If a security manager exists and its {@link
! * java.lang.SecurityManager#checkDelete} method denies
! * delete access to the file
! * @throws IllegalStateException
! * If this method is called on the same file unbalanced
! * with the {@link #deleteOnExit()}
! *
! * @see #deleteOnExit
! *
! * @since 14
! */
! public void cancelDeleteOnExit() {
! SecurityManager security = System.getSecurityManager();
! if (security != null) {
! security.checkDelete(path);
! }
! if (isInvalid()) {
! return;
! }
! DeleteOnExitHook.cancelDeleteOnExit(path);
}
/**
* Returns an array of strings naming the files and directories in the
* directory denoted by this abstract pathname.
< prev index next >