package parser.utils;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class SearchFile {
private File rootDir = null;
private List<File> result = new ArrayList<File>();
private int count = 0;
public SearchFile(File rootDir) {
this.rootDir = rootDir;
}
public SearchFile(String rootDir) {
this.rootDir = new File(rootDir);
}
public final List<File> listDAFolders() {
result.clear();
File[] folders = rootDir.listFiles();
if (folders != null) {
for (int i = 0; i < folders.length; i++) {
if (!folders[i].isFile()
&& folders[i].getName().matches("^.*\\_.*\\_S$")) {
result.add(folders[i]);
count++;
if (count > 10) {
return result;
}
}
}
}
return result;
}
/**
* 获取文件夹内 matchingExtension 类型的所有文件
*
* @param matchingExtension
* @return
*/
public List<File> listAllFiles(String... matchingExtension) {
result.clear();
recursiveSearch(rootDir, matchingExtension);
return result;
}
public List<File> listCMFiles() {
result.clear();
recursiveSearch50(rootDir, "apk", "sis", "sisx");
return result;
}
private void recursiveSearch50(File rootDir, String... suffix) {
File[] files = rootDir.listFiles();
if (files != null)
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
String fileName = files[i].getName().toLowerCase();
for (String ext : suffix) {
if (count > 50) {
return;
}
if (fileName.toLowerCase().endsWith(ext)) {
result.add(files[i]);
count++;
}
}
} else
recursiveSearch50(files[i], suffix);
}
}
private void recursiveSearch(File rootDir, String... suffix) {
File[] files = rootDir.listFiles();
if (files != null)
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
String fileName = files[i].getName().toLowerCase();
for (String ext : suffix) {
if (fileName.endsWith(ext))
result.add(files[i]);
}
} else
recursiveSearch(files[i], suffix);
}
}
protected final List<File> listFiles() {
result.clear();
File[] folders = rootDir.listFiles();
if (folders != null) {
for (int i = 0; i < folders.length; i++) {
if (folders[i].isFile()) {
result.add(folders[i]);
}
}
}
return result;
}
}