[java]代码库
/*对目录深度优先遍历,获取所有文件,建立索引*/
static void indexDocs (IndexWriter writer, File file) throws IOException {
// file可以读取
if (file.canRead() ) {
// 如果file是一个目录(该目录下面可能有文件、目录文件、空文件三种情况)
if (file.isDirectory() ) {
// 获取file目录下的所有文件(包括目录文件)File对象,放到数组files里
String[] files = file.list();
if (files != null) {// 如果files!=null
// 对files数组里面的File对象递归索引,通过广度遍历
for (int i = 0; i < files.length; i++) {
indexDocs (writer, new File (file, files[i]) );
}
}
} else { // 到达叶节点时,说明是一个File,而不是目录,则建立索引
System.out.println ("adding " + file);
try {
writer.addDocument (FileDocument.Document (file) );
} catch (FileNotFoundException fnfe) {
;
}
}
}
}