Я не понимаю, почему вы хотите избавиться от рекурсии, хотя теоретически то, что вы ищете, возможно.
Но хорошим способом получить более быструю программу может быть использование файлового фильтра при перечислениидети каталога.Один для каталогов и один для соответствующих файлов (этот должен использовать java.util.regexp.Pattern).
-обновлен
Вы можете найти документ для перегрузки File.list
виспользуйте здесь .А для шаблона вы могли бы что-то вроде локальной переменной (вне вашего цикла или члена данных, если вы используете рекурсию).
Pattern p = Pattern.compile( ".*"+source+".*" );
boolean found = p.matcher( p.matcher( srcc.getName() ).matches() );
Да, и, кстати, не конвертировать srcc в файл!Работайте со строками и создавайте как можно меньше объектов.