package com.ximple.eofms.util;
|
|
import java.io.File;
|
import java.io.FileFilter;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
public class FileUtils {
|
|
public static List<File> recurseDir(File dir, FileFilter filter) {
|
return recurseInDirFrom(dir, filter);
|
}
|
|
private static ArrayList<File> recurseInDirFrom(File dirItem, FileFilter filter) {
|
ArrayList<File> result = new ArrayList<File>();
|
File[] list;
|
if (filter.accept(dirItem)) {
|
result.add(dirItem);
|
}
|
|
if (dirItem.isDirectory()) {
|
list = dirItem.listFiles();
|
for (File item : list) {
|
result.addAll(recurseInDirFrom(item, filter));
|
}
|
}
|
return result;
|
}
|
|
public static List recurseDir(String dir) {
|
return recurseDir(dir, null);
|
}
|
|
public static List recurseDir(String dir, String suffix) {
|
String result, _result[];
|
|
result = recurseInDirFrom(dir, suffix);
|
_result = result.split("\\|");
|
return Arrays.asList(_result);
|
}
|
|
private static String recurseInDirFrom(String dirItem, String suffix) {
|
File file;
|
String list[];
|
StringBuilder result = new StringBuilder(dirItem);
|
|
file = new File(dirItem);
|
if (file.isDirectory()) {
|
list = file.list();
|
for (String item : list) {
|
if (suffix == null)
|
result.append("|").append(recurseInDirFrom(dirItem + File.separatorChar + item, suffix));
|
else {
|
if (item.toLowerCase().endsWith(suffix)) {
|
result.append("|").append(recurseInDirFrom(dirItem + File.separatorChar + item, suffix));
|
}
|
}
|
}
|
}
|
return result.toString();
|
}
|
}
|