实现FilenameFilter接口的方法<span style="font-family: Arial, Helvetica, sans-serif;">public boolean accept(File directory, String filename)</span>
public File[] listFiles(FilenameFilter filefilter)
public String [] list(FilenameFilter filter);
文件列表的过滤功能是有list()或者listFiles()方法为原始列表中的每一项对象调用accept()方法来实现的。
import java.io.File;
import java.io.FilenameFilter;
public class FileListFilter implements FilenameFilter {
private String name;
private String extension;
public FileListFilter(String name, String extension) {
this.name = name;
this.extension = extension;
}
/**
* 实现FilenameFilter借口的方法
*/
@Override
public boolean accept(File directory, String filename) {
boolean fileOK = true;
if (name != null) {
fileOK &= filename.startsWith(name);
}
if (extension != null) {
fileOK &= filename.endsWith('.' + extension);
}
return fileOK;
}
public static void main(String[] args) {
File myDir = new File("C:\\Program Files\\Java\\jdk1.8.0_31\\src\\java\\io");
System.out.println(myDir.getAbsolutePath()
+ (myDir.isDirectory() ? " is a directory"
: "is not a directory"));
System.out.println("*********************");
System.out.println("The parent of " + myDir.getName() + " is "
+ myDir.getParent());
System.out.println("*********************");
FilenameFilter select = new FileListFilter("F", "java");
File[] contents = myDir.listFiles(select);
if (contents != null) {
System.out.println("The " + contents.length
+ " matching items in the directory," + myDir.getName()
+ ",are:");
System.out.println("*********************");
for (File file : contents) {
System.out.println(file + " is a "
+ (file.isDirectory() ? "directory" : "file"));
}
} else {
System.out.println(myDir.getName() + " is not a directory");
}
}
}