Package org.apache.commons.io
Class FileDeleteStrategy
- java.lang.Object
-
- org.apache.commons.io.FileDeleteStrategy
-
public class FileDeleteStrategy extends java.lang.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 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
Constructors Modifier Constructor Description protected
FileDeleteStrategy(java.lang.String name)
Restricted constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
delete(java.io.File fileToDelete)
Deletes the file object, which may be a file or a directory.boolean
deleteQuietly(java.io.File fileToDelete)
Deletes the file object, which may be a file or a directory.protected boolean
doDelete(java.io.File file)
Actually deletes the file object, which may be a file or a directory.java.lang.String
toString()
Gets a string describing the delete strategy.
-
-
-
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.
-
-
Method Detail
-
delete
public void delete(java.io.File fileToDelete) throws java.io.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:
java.lang.NullPointerException
- if the file is nulljava.io.IOException
- if an error occurs during file deletion
-
deleteQuietly
public boolean deleteQuietly(java.io.File fileToDelete)
Deletes the file object, which may be a file or a directory. AllIOException
s 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(java.io.File file) throws java.io.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. Thedelete(File)
anddeleteQuietly(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:
java.lang.NullPointerException
- if the file is nulljava.io.IOException
- if an error occurs during file deletion
-
toString
public java.lang.String toString()
Gets a string describing the delete strategy.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string describing the delete strategy
-
-