Java tutorial
//package com.java2s; import java.io.File; import java.io.FileFilter; import java.util.Collection; import java.util.LinkedList; public class Main { public static Collection<File> listFiles(File directory, String suffix) { final String _suffix = "." + suffix; FileFilter filter = new FileFilter() { @Override public boolean accept(File file) { if (file.isDirectory()) return true; String name = file.getName(); int endLen = _suffix.length(); if (name.regionMatches(true, name.length() - endLen, _suffix, 0, endLen)) { return true; } return false; } }; if (!directory.isDirectory()) { throw new IllegalArgumentException("Parameter 'directory' is not a directory"); } if (filter == null) { throw new NullPointerException("Parameter 'fileFilter' is null"); } Collection<File> files = new LinkedList<File>(); innerListFiles(files, directory, filter); return files; } private static void innerListFiles(Collection<File> files, File directory, FileFilter filter) { File[] found = directory.listFiles(filter); if (found != null) for (File file : found) if (file.isDirectory()) innerListFiles(files, file, filter); else files.add(file); } }