Я использую сканер каталогов apache для сканирования файлов по пути с подстановочными знаками.
DirectoryScanner scanner = new DirectoryScanner();
scanner.setIncludes(new String[]{"*/*.java"});
scanner.setBasedir("C:/Temp");
scanner.setCaseSensitive(false);
scanner.scan();
String[] files = scanner.getIncludedFiles();
Проблема здесь в том, что если я использую приведенный выше код, он будет отображать только файлы Java внутри подкаталогов Temp, а не файлы Java, которые находятся непосредственно в папке Temp.
Также у меня есть уведомление, если я использую (new String[]{"*.java"})
, тогда он перечислит все java-файлы в папке Temp, а (new String[]{"**/*.java"})
перечислит все java-файлы даже внутри подкаталогов подкаталога. Итак, мой вопрос здесь,
1) Это стандартный подстановочный синтаксис, который применяется везде? я имею в виду ** / означает все каталоги и * / означает только подкаталоги?
2) Как получить файлы, которые находятся непосредственно в каталоге Temp и только внутри подкаталогов (больше не внутри этих подкаталогов, как мы используем **)
3) Теперь мы можем видеть, что при использовании DirectoryScanner у нас есть базовый каталог, а затем синтаксис подстановочного знака relvanat. Но предположим, что у нас тоже есть символы подстановки в середине базовой директории . Если да, то как мы можем использовать DirectoryScanner?
Спасибо.