2013-12-19 8 views
1

У меня есть список каталогов, которые я использую в selectMenu на веб-странице.Как получить все подкаталоги, исключая некоторые подкаталоги?

Список содержит все поддиректории определенной директории, извлеченную с помощью ниже кода Java ..

File directory = new File("C:\\myHomeDirectory"); 
myDirectories = directory.listFiles((FileFilter) DirectoryFileFilter.DIRECTORY); 

Я хочу, чтобы отфильтровать список myDirectories исключить подкаталоги, которые не содержат какой-либо файл (например, testFolder). Другими словами, я хочу, чтобы myDirectories включал только файлы с подпапкой, называемой testForder. Как это сделать?

ответ

3

Я думаю, вы должны реализовать свой собственный FileFilter.

Что-то вроде этого:

class CustomDirectoryFilter implements FileFilter { 

private String allowedFileName = "testFolder"; 

    @Override 
    public boolean accept(File pathname) { 

    if (pathname.isDirectory()) { 
     File[] subFiles = pathName.listFiles(); 
     for (File file : subFiles){ 
     if (file.getName().equals(allowedFileName)){ 
      return true; 
     } 
     } 
    } 
    return false; 
    } 
} 

Объяснение: для каждого файла из C: \ myHomeDirectory тест, если данный файл является каталогом. Если это так, получите массив всех файлов в нем и протестируйте, если какой-либо из этих файлов содержит ваш файл. Если такой файл найден, разрешите директорию быть частью myDirectories

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

+0

Большое вам спасибо. Это действительно помогло. – Fati

+0

Я рад, что смогу помочь. –

Смежные вопросы