Ciao,
non so se hai risolto il tuo problema ma anche per altri che possono avere un problema simile posto questo metodo:
// ottiene ricorsivamente la lista di tutte le cartelle (e sottocartelle) data in input una cartella di base
private static List<File> listFolders(String folderName){
File directory = new File(folderName);
File[] fList = directory.listFiles(new FileFilter() {
@Override
public boolean accept(File file) {
return file.isDirectory();
}
});
List<File> resultList = new ArrayList<File>(Arrays.asList(fList));
for (File file : fList) {
resultList.addAll(listFolders(file.getAbsolutePath()));
}
return resultList;
}
Semplicemente ritorno da una cartella radice una lista di sottocartelle (sottoforma di List<File>), richiamandosi ricorsivamente per le cartelle trovate all'interno della cartella arrivata come parametro.
Da notare il metodo listFiles della classe File che premette di creare un FileFilter per customizzare i tipi di file da estrarre (in questo caso solo le cartelle, ma poteva esserci benissimo il controllo sul nome del file).
Spero sia utile a qualcuno.
Ciao