code: public static List<File> getSubFiles(File folder, FileFilter filter) {
  		Preconditions.checkArgument(folder.isDirectory(), "Argument \"folder\" must be a directory!");
  
  		ArrayList<File> ret = Lists.newArrayList();
  
  		for (File f : folder.listFiles(filter)) {
  			if (f.isFile()) ret.add(f);
  			else if (f.isDirectory()) ret.addAll(IOUtil.getSubFiles(f, filter));
  		}
  		return ret;
  	}
docs: Get all files matching the {@link java.io.FileFilter} under the specified folder, including those in sub-folders, sub-sub-folders, etc.
  
  @param folder The root folder to look for files from
  @param filter The filter the files must match in order to be accepted
  @return A list of all files matching the filter under the folder