//扫描多层级目录下的文件
public class NewFileMain {
private static final Logger logger= LoggerFactory.getLogger(QuchongMain.class);
public static ArrayList dirAllStrArr = new ArrayList();
// 这里是仅仅查询当前路径下的所有文件夹、文件并且存放其路径到文件数组
// 由于遇到文件夹不查询其包含所有子文件夹、文件,因此没必要用到递归
public static ArrayList<String> Dir(File dirFile) throws Exception {
ArrayList<String> dirStrArr = new ArrayList<String>();
if (dirFile.exists()) {
// 直接取出利用listFiles()把当前路径下的所有文件夹、文件存放到一个文件数组
File files[] = dirFile.listFiles();
for (File file : files) {
// 如果传递过来的参数dirFile是以文件分隔符,也就是/或者\结尾,则如此构造
if (dirFile.getPath().endsWith(File.separator)) {
dirStrArr.add(dirFile.getPath() + file.getName());
} else {
// 否则,如果没有文件分隔符,则补上一个文件分隔符,再加上文件名,才是路径
dirStrArr.add(dirFile.getPath() + File.separator
+ file.getName());
}
}
}
return dirStrArr;
}
public static void DirAll(File dirFile) throws Exception {
if (dirFile.exists()) {
File files[] = dirFile.listFiles();
for (File file : files) {
// 如果遇到文件夹则递归调用。
if (file.isDirectory()) {
// 递归调用
DirAll(file);
} else {
logger.info("文档路径填充中...");
// 如果遇到文件夹则放入数组
if (dirFile.getPath().endsWith(File.separator)) {
dirAllStrArr.add(dirFile.getPath() + file.getName());
} else {
dirAllStrArr.add(dirFile.getPath() + File.separator
+ file.getName());
}
}
}
}
}
public static void main(String[] args) throws Exception {
File dirFile = new File("E:\\datastore\\GroupRes");
DirAll(dirFile);
}
}