org.apache.commons.io
Class FileDeleteStrategy

java.lang.Object
  extended by org.apache.commons.io.FileDeleteStrategy

public class FileDeleteStrategy
extends Object

Strategy for deleting files.

There is more than one way to delete a file. You may want to limit access to certain directories, to only delete directories if they are empty, or maybe to force deletion.

This class captures the strategy to use and is designed for user subclassing.

Since:
Commons IO 1.3
Version:
$Id: FileDeleteStrategy.java 453903 2006-10-07 13:47:06Z scolebourne $
Author:
Stephen Colebourne

Field Summary
static FileDeleteStrategy FORCE
          The singleton instance for forced file deletion, which always deletes, even if the file represents a non-empty directory.
static FileDeleteStrategy NORMAL
          The singleton instance for normal file deletion, which does not permit the deletion of directories that are not empty.
 
Constructor Summary
protected FileDeleteStrategy(String name)
          Restricted constructor.
 
Method Summary
 void delete(File fileToDelete)
          Deletes the file object, which may be a file or a directory.
 boolean deleteQuietly(File fileToDelete)
          Deletes the file object, which may be a file or a directory.
protected  boolean doDelete(File fileToDelete)
          Actually deletes the file object, which may be a file or a directory.
 String toString()
          Gets a string describing the delete strategy.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NORMAL

public static final FileDeleteStrategy NORMAL
The singleton instance for normal file deletion, which does not permit the deletion of directories that are not empty.


FORCE

public static final FileDeleteStrategy FORCE
The singleton instance for forced file deletion, which always deletes, even if the file represents a non-empty directory.

Constructor Detail

FileDeleteStrategy

protected FileDeleteStrategy(String name)
Restricted constructor.

Parameters:
name - the name by which the strategy is known
Method Detail

deleteQuietly

public boolean deleteQuietly(File fileToDelete)
Deletes the file object, which may be a file or a directory. All IOExceptions are caught and false returned instead. If the file does not exist or is null, true is returned.

Subclass writers should override doDelete(File), not this method.

Parameters:
fileToDelete - the file to delete, null returns true
Returns:
true if the file was deleted, or there was no such file

delete

public void delete(File fileToDelete)
            throws IOException
Deletes the file object, which may be a file or a directory. If the file does not exist, the method just returns.

Subclass writers should override doDelete(File), not this method.

Parameters:
fileToDelete - the file to delete, not null
Throws:
NullPointerException - if the file is null
IOException - if an error occurs during file deletion

doDelete

protected boolean doDelete(File fileToDelete)
                    throws IOException
Actually deletes the file object, which may be a file or a directory.

This method is designed for subclasses to override. The implementation may return either false or an IOException when deletion fails. The delete(File) and deleteQuietly(File) methods will handle either response appropriately. A check has been made to ensure that the file will exist.

This implementation uses File.delete().

Parameters:
fileToDelete - the file to delete, exists, not null
Returns:
true if the file was deleteds
Throws:
NullPointerException - if the file is null
IOException - if an error occurs during file deletion

toString

public String toString()
Gets a string describing the delete strategy.

Overrides:
toString in class Object
Returns:
a string describing the delete strategy


Copyright 2002-2008 The Apache Software Foundation. All Rights Reserved.