Как написано в другом ответе, библиотека подстановочных знаков работает для совпадения имени файла с глобальным и регулярным выражением: http://code.google.com/p/wildcard/
Я использовал следующий код для сопоставления шаблонов глобуса, включая абсолютные и относительные в файловых системах стиля * nix:
String filePattern = String baseDir = "./";
// If absolute path. TODO handle windows absolute path?
if (filePattern.charAt(0) == File.separatorChar) {
baseDir = File.separator;
filePattern = filePattern.substring(1);
}
Paths paths = new Paths(baseDir, filePattern);
List files = paths.getFiles();
Я потратил некоторое время, пытаясь получить методы FileUtils.listFiles в библиотеке Apache commons io (см. Ответ Владимира), но безуспешно (сейчас я понимаю / думаю, что он может обрабатывать только шаблоны, соответствующие одному каталогу или файлу в время).
Кроме того, использование фильтров регулярных выражений (см. Ответ Фабиана) для обработки произвольных предоставленных пользователем шаблонов глобуса абсолютного типа без поиска во всей файловой системе потребует некоторой предварительной обработки поставляемого глобуса для определения наибольшего префикса без регулярного выражения / глобуса.
Конечно, Java 7 может хорошо обрабатывать запрошенную функциональность, но, к сожалению, я пока застрял с Java 6. Библиотека относительно небольшая, ее размер составляет 13,5 КБ.
Примечание для рецензентов: я попытался добавить вышеприведенный ответ к существующему ответу с упоминанием этой библиотеки, но редактирование было отклонено. У меня недостаточно представителей, чтобы добавить это в качестве комментария. Нет ли лучшего способа ...