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

PrefixFileFilter

public class PrefixFileFilter extends AbstractFileFilter implements Serializable
Filters filenames for a certain prefix.

For example, to print all files and directories in the current directory whose name starts with Test:

File dir = new File(".");
String[] files = dir.list( new PrefixFileFilter("Test") );
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[]
prefixes
The filename prefixes to search for
private final IOCase
caseSensitivity
Whether the comparison is case sensitive.
Constructors Summary
public PrefixFileFilter(String prefix)
Constructs a new Prefix file filter for a single prefix.

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

        this(prefix, IOCase.SENSITIVE);
    
public PrefixFileFilter(String prefix, IOCase caseSensitivity)
Constructs a new Prefix file filter for a single prefix specifying case-sensitivity.

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

        if (prefix == null) {
            throw new IllegalArgumentException("The prefix must not be null");
        }
        this.prefixes = new String[] {prefix};
        this.caseSensitivity = (caseSensitivity == null ? IOCase.SENSITIVE : caseSensitivity);
    
public PrefixFileFilter(String[] prefixes)
Constructs a new Prefix file filter for any of an array of prefixes.

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

param
prefixes the prefixes to allow, must not be null
throws
IllegalArgumentException if the prefix array is null

        this(prefixes, IOCase.SENSITIVE);
    
public PrefixFileFilter(String[] prefixes, IOCase caseSensitivity)
Constructs a new Prefix file filter for any of an array of prefixes specifying case-sensitivity.

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

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

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

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

        this(prefixes, IOCase.SENSITIVE);
    
public PrefixFileFilter(List prefixes, IOCase caseSensitivity)
Constructs a new Prefix file filter for a list of prefixes specifying case-sensitivity.

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

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

param
file the File to check
return
true if the filename starts with one of our prefixes

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

param
file the File directory
param
name the filename
return
true if the filename starts with one of our prefixes

        for (int i = 0; i < prefixes.length; i++) {
            if (caseSensitivity.checkStartsWith(name, prefixes[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 (prefixes != null) {
            for (int i = 0; i < prefixes.length; i++) {
                if (i > 0) {
                    buffer.append(",");
                }
                buffer.append(prefixes[i]);
            }
        }
        buffer.append(")");
        return buffer.toString();