Список файлов в каталоге, соответствующем шаблону в Java [дубликат]

Этот вопрос уже имеет ответ здесь:

Я ищу способ получить список файлов, которые соответствуют шаблону (приставка regex) в данном каталоге.

Я нашел учебное руководство онлайн, которое использует пакет свободного-городского-населения-io апача со следующим кодом:

Collection getAllFilesThatMatchFilenameExtension(String directoryName, String extension)
{
  File directory = new File(directoryName);
  return FileUtils.listFiles(directory, new WildcardFileFilter(extension), null);
}

Но это просто возвращает основной набор (Согласно документам, из которых это является набор java.io.File). Существует ли способ сделать это, которое возвращает безопасный с точки зрения типов универсальный набор?

79
задан skaffman 20 January 2010 в 16:25
поделиться

3 ответа

См. Файл # ListFiles (filenamefilter) .

File dir = new File(".");
File [] files = dir.listFiles(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        return name.endsWith(".xml");
    }
});

for (File xmlfile : files) {
    System.out.println(xmlfile);
}
119
ответ дан 24 November 2019 в 10:08
поделиться

Также найден метод reverse коллекции google.

-121--584090-

Спасибо безвыходность! Я на самом деле нашел другой ответ на эту проблему прошлой ночью, который очень похож на то, что вы опубликовали.

.bind("mouseleave", function(e) { // ANSWER HERE!!!
    if (!e.fromElement.length) {
        _state.filterTrigger.data("open", false);
        setTimeout(function() { _toggleFilter(_state.filterTrigger); }, 2000);
    }
});

Объект e.fromElement определяет количество объектов OPTION в SELECT. Этот объект не определен для других HTML- тэги. Я не пробовал ваше решение, но это работает и для меня.

-121--4244854-

Как насчет обертки вокруг вашего существующего кода:

public Collection<File> getMatchingFiles( String directory, String extension ) {
     return new ArrayList<File>()( 
         getAllFilesThatMatchFilenameExtension( directory, extension ) );
 }

Я пошлю предупреждение, хотя. Если вы можете жить с этим предупреждением, то вы закончили.

0
ответ дан 24 November 2019 в 10:08
поделиться

Следующий код создаст список файлов на основе метода приема FileNameFilter.

List<File> list = Arrays.asList(dir.listFiles(new FilenameFilter(){
        @Override
        public boolean accept(File dir, String name) {
            return name.endsWith(".exe"); // or something else
        }}));
14
ответ дан 24 November 2019 в 10:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: