I need to list files(specified extensions) from a directory excluding a few subdirectories.
I'm able to filter with extensions but not with two conditions 1) Files should be filtered by extension 2) Should exclude few subdirectories
File dir = new File("D:\\SomeDir");
String[] extensions = new String[] { "txt", "java" };
List<File> files = (List<File>) FileUtils.listFiles(dir, extensions, true);
for (File file : files) {
System.out.println("file: " + file.getCanonicalPath());
}
How to exclude selected subdirectories?
try this code:
// for exlude file extension
NotFileFilter suffixFileFilterFileFilter=new NotFileFilter(new
SuffixFileFilter(new String[] { "txt", "java" }));
//to include only selected extension use below one
//IOFileFilter suffixFileFilterFileFilter= new SuffixFileFilter(new String[] { "java", "txt" });
NotFileFilter directoryFileFilterFileFilter=new NotFileFilter(new
PrefixFileFilter(new String[] { "tolearn", "dir2" })); // for directory
File dir = new File("D:\\SomeDir");
List<File> fileList = (List<File>) FileUtils.listFiles(dir,suffixFileFilterFileFilter,directoryFileFilterFileFilter);
for (File file : fileList) {
System.out.println("file: " + file.getCanonicalPath());
}