预计使用lucene检索的对象 txt doc docx xls xlsx zip rar pdf html。
使用fileList命令进行目录下文件的检索,并且使用递归,检索指定目录下的目录中文件。
使用file的getAbsolutePath获取文件的全路径名,并存储到ArrayList中。
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class FileUtil {
public static ArrayList<String> findFiles(String pathName){
ArrayList<String> arr=new ArrayList<String>();
File parentFile=new File(pathName);
File[] sonFile=null;
if(parentFile.exists()&&parentFile.isDirectory()){
sonFile=parentFile.listFiles();
ArrayList<String> arrD=new ArrayList<String>();
if(sonFile!=null){
for(File f:sonFile){
if(f.isFile()&&isAllowerFile(f.getName())){
arr.add(f.getAbsolutePath());
}else if(f.isDirectory()){
arrD=findFiles(f.getAbsolutePath());
arr.addAll(arrD);
}
}
}
}
return arr;
}
private static boolean isAllowerFile(String fileName){
boolean flag=false;
List<String> fileEndsWith=new ArrayList<String>();
fileEndsWith.add(".xls");
fileEndsWith.add(".xlsx");
fileEndsWith.add(".rar");
fileEndsWith.add(".zip");
fileEndsWith.add(".txt");
fileEndsWith.add(".doc");
fileEndsWith.add(".docx");
fileEndsWith.add(".pdf");
fileEndsWith.add(".html");
for(String fileEnd:fileEndsWith){
if(fileName.endsWith(fileEnd)){
flag=true;
break;
}
}
return flag;
}
public static void main(String[] args) {
ArrayList<String> arr=findFiles("E:/");
if(arr.size()>0){
Iterator<String> it=arr.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
}
试着检索D盘,可以检索出相关数据