org.apache.commons.io

Class FileCleaner


public class FileCleaner
extends java.lang.Object

Keeps track of files awaiting deletion, and deletes them when an associated marker object is reclaimed by the garbage collector.

This utility creates a background thread to handle file deletion. Each file to be deleted is registered with a handler object. When the handler object is garbage collected, the file is deleted.

Version:
$Id: FileCleaner.java 289999 2005-09-18 23:12:45Z scolebourne $
Authors:
Noel Bergman
Martin Cooper

Nested Class Summary

private static class
FileCleaner.Tracker
Inner class which acts as the reference for a file pending deletion.

Field Summary

private static ReferenceQueue
q
Queue of Tracker instances being watched.
private static Thread
reaper
The thread that will clean up registered files.
private static Collection
trackers
Collection of Tracker instances in existence.

Method Summary

static int
getTrackCount()
Retrieve the number of files currently being tracked, and therefore awaiting deletion.
static void
track(File file, Object marker)
Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected.
static void
track(String path, Object marker)
Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected.

Field Details

q

private static ReferenceQueue q
Queue of Tracker instances being watched.

reaper

private static Thread reaper
The thread that will clean up registered files.

trackers

private static Collection trackers
Collection of Tracker instances in existence.

Method Details

getTrackCount

public static int getTrackCount()
Retrieve the number of files currently being tracked, and therefore awaiting deletion.
Returns:
the number of files being tracked.

track

public static void track(File file,
                         Object marker)
Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected.
Parameters:
file - The file to be tracked.
marker - The marker object used to track the file.

track

public static void track(String path,
                         Object marker)
Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected.
Parameters:
path - The full path to the file to be tracked.
marker - The marker object used to track the file.