FileDocCategorySizeDatePackage
SuffixFileFilter.javaAPI DocAndroid 1.5 API7189Wed May 06 22:42:46 BST 2009org.apache.commons.io.filefilter

SuffixFileFilter

public class SuffixFileFilter extends AbstractFileFilter implements Serializable
Filters files based on the suffix (what the filename ends with). This is used in retrieving all the files of a particular type.

For example, to retrieve and print all *.java files in the current directory:

File dir = new File(".");
String[] files = dir.list( new SuffixFileFilter(".java") );
for (int i = 0; i < files.length; i++) {
System.out.println(files[i]);
}
since
Commons IO 1.0
version
$Revision: 606381 $ $Date: 2007-12-22 02:03:16 +0000 (Sat, 22 Dec 2007) $
author
Stephen Colebourne
author
Federico Barbieri
author
Serge Knystautas
author
Peter Donald

Fields Summary
private final String[]
suffixes
The filename suffixes to search for
private final IOCase
caseSensitivity
Whether the comparison is case sensitive.
Constructors Summary
public SuffixFileFilter(String suffix)
Constructs a new Suffix file filter for a single extension.

param
suffix the suffix to allow, must not be null
throws
IllegalArgumentException if the suffix is null

        this(suffix, IOCase.SENSITIVE);
    
public SuffixFileFilter(String suffix, IOCase caseSensitivity)
Constructs a new Suffix file filter for a single extension specifying case-sensitivity.

param
suffix the suffix to allow, must not be null
param
caseSensitivity how to handle case sensitivity, null means case-sensitive
throws
IllegalArgumentException if the suffix is null
since
Commons IO 1.4

        if (suffix == null) {
            throw new IllegalArgumentException("The suffix must not be null");
        }
        this.suffixes = new String[] {suffix};
        this.caseSensitivity = (caseSensitivity == null ? IOCase.SENSITIVE : caseSensitivity);
    
public SuffixFileFilter(String[] suffixes)
Constructs a new Suffix file filter for an array of suffixs.

The array is not cloned, so could be changed after constructing the instance. This would be inadvisable however.

param
suffixes the suffixes to allow, must not be null
throws
IllegalArgumentException if the suffix array is null

        this(suffixes, IOCase.SENSITIVE);
    
public SuffixFileFilter(String[] suffixes, IOCase caseSensitivity)
Constructs a new Suffix file filter for an array of suffixs specifying case-sensitivity.

The array is not cloned, so could be changed after constructing the instance. This would be inadvisable however.

param
suffixes the suffixes to allow, must not be null
param
caseSensitivity how to handle case sensitivity, null means case-sensitive
throws
IllegalArgumentException if the suffix array is null
since
Commons IO 1.4

        if (suffixes == null) {
            throw new IllegalArgumentException("The array of suffixes must not be null");
        }
        this.suffixes = suffixes;
        this.caseSensitivity = (caseSensitivity == null ? IOCase.SENSITIVE : caseSensitivity);
    
public SuffixFileFilter(List suffixes)
Constructs a new Suffix file filter for a list of suffixes.

param
suffixes the suffixes to allow, must not be null
throws
IllegalArgumentException if the suffix list is null
throws
ClassCastException if the list does not contain Strings

        this(suffixes, IOCase.SENSITIVE);
    
public SuffixFileFilter(List suffixes, IOCase caseSensitivity)
Constructs a new Suffix file filter for a list of suffixes specifying case-sensitivity.

param
suffixes the suffixes to allow, must not be null
param
caseSensitivity how to handle case sensitivity, null means case-sensitive
throws
IllegalArgumentException if the suffix list is null
throws
ClassCastException if the list does not contain Strings
since
Commons IO 1.4

        if (suffixes == null) {
            throw new IllegalArgumentException("The list of suffixes must not be null");
        }
        this.suffixes = (String[]) suffixes.toArray(new String[suffixes.size()]);
        this.caseSensitivity = (caseSensitivity == null ? IOCase.SENSITIVE : caseSensitivity);
    
Methods Summary
public booleanaccept(java.io.File file)
Checks to see if the filename ends with the suffix.

param
file the File to check
return
true if the filename ends with one of our suffixes

        String name = file.getName();
        for (int i = 0; i < this.suffixes.length; i++) {
            if (caseSensitivity.checkEndsWith(name, suffixes[i])) {
                return true;
            }
        }
        return false;
    
public booleanaccept(java.io.File file, java.lang.String name)
Checks to see if the filename ends with the suffix.

param
file the File directory
param
name the filename
return
true if the filename ends with one of our suffixes

        for (int i = 0; i < this.suffixes.length; i++) {
            if (caseSensitivity.checkEndsWith(name, suffixes[i])) {
                return true;
            }
        }
        return false;
    
public java.lang.StringtoString()
Provide a String representaion of this file filter.

return
a String representaion

        StringBuffer buffer = new StringBuffer();
        buffer.append(super.toString());
        buffer.append("(");
        if (suffixes != null) {
            for (int i = 0; i < suffixes.length; i++) {
                if (i > 0) {
                    buffer.append(",");
                }
                buffer.append(suffixes[i]);
            }
        }
        buffer.append(")");
        return buffer.toString();