I made my decision based on the messages I found here with Google. And I thought that there was no harm to my mail message, even if it is an old thread.
The only plus point this code gives is that it can also iterate through subdirectories.
import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.commons.io.filefilter.DirectoryFileFilter; import org.apache.commons.io.filefilter.WildcardFileFilter;
The method is as follows:
List <File> exploreThis(String dirPath){ File topDir = new File(dirPath); List<File> directories = new ArrayList<>(); directories.add(topDir); List<File> textFiles = new ArrayList<>(); List<String> filterWildcards = new ArrayList<>(); filterWildcards.add("*.txt"); filterWildcards.add("*.doc"); FileFilter typeFilter = new WildcardFileFilter(filterWildcards); while (directories.isEmpty() == false) { List<File> subDirectories = new ArrayList(); for(File f : directories) { subDirectories.addAll(Arrays.asList(f.listFiles((FileFilter)DirectoryFileFilter.INSTANCE))); textFiles.addAll(Arrays.asList(f.listFiles(typeFilter))); } directories.clear(); directories.addAll(subDirectories); } return textFiles; }
Lokarno Dec 27 '12 at 8:59 2012-12-27 08:59
source share