Class FileDeleteStrategy

java.lang.Object
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:
1.3
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final FileDeleteStrategy
    The singleton instance for forced file deletion, which always deletes, even if the file represents a non-empty directory.
    static final FileDeleteStrategy
    The singleton instance for normal file deletion, which does not permit the deletion of directories that are not empty.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Restricted constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    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 file)
    Actually deletes the file object, which may be a file or a directory.
    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 Details

    • 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 Details

    • FileDeleteStrategy

      protected FileDeleteStrategy(String name)
      Restricted constructor.
      Parameters:
      name - the name by which the strategy is known
  • Method Details

    • 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
    • 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
    • doDelete

      protected boolean doDelete(File file) 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 FileUtils.delete(File).

      Parameters:
      file - the file to delete, exists, not null
      Returns:
      true if the file was deleted
      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