package com.javaeasy.fileiterator;
import java.io.File;
import java.io.FileFilter;
public class FileSysIteratorUtils {
public static final String ALLOW_ALL_FILE = "*";
public static File[] findAllFoldersInFolder(File folder) {
File[] allFolders = folder.listFiles(new FileFilter() {
public boolean accept(File file) {
if (file.exists() && file.isDirectory()) {
return true;
}
return false;
}
});
return allFolders;
}
public static File[] findAllFilesInFolder(File folder,
String[] fileExtensions, String[] fileNames) {
final String[] fileExtensionsInner = fileExtensions;
final String[] fileNamesInner = fileNames;
File[] javaFiles = folder.listFiles(new FileFilter() {
public boolean accept(File pathname) {
if (ALLOW_ALL_FILE.equals(fileExtensionsInner)
|| ALLOW_ALL_FILE.equals(fileNamesInner)) {
return true;
}
if (pathname.exists() && pathname.isFile()) {
String fileName = pathname.getName().toLowerCase();
if (fileNamesInner != null) {
for (int i = 0; i < fileNamesInner.length; i++) {
if (fileName.equalsIgnoreCase(fileNamesInner[i])) {
return true;
}
}
}
if (fileExtensionsInner != null) {
int lastDot = fileName.lastIndexOf('.') + 1;
String fileExt = null;
if (lastDot <= fileName.length()) {
fileExt = fileName.substring(lastDot);
}
for (int i = 0; i < fileExtensionsInner.length; i++) {
if (fileExt
.equalsIgnoreCase(fileExtensionsInner[i])) {
return true;
}
}
}
}
return false;
}
});
return javaFiles;
}
}