使用递归方式获取目录下的所有文件:
/**
* 获取目录下所有的文件并返回所有文件列表,使用递归方式完成
*
* @param filePath
* @return
*/
public List<File> getAllFile(List<File> listFile, File paramFile) {
if (paramFile.isFile()) {// 是文件,添加到文件列表中,本次调用结束,返回文件列表
listFile.add(paramFile);
return listFile;
} else {// 是目录
File[] localFiles = paramFile.listFiles();// 得到目录下的子文件数组
if (localFiles != null) {// 目录不为空
for (File localFile : localFiles) {//遍历子文件数组
getAllFile(listFile, localFile);//调用该函数本身
}
}
// 为空目录,本次调用结束,返回文件列表
return listFile;
}
}
也可不返回列表使用void代替
/**
* 获取目录下所有的文件并返回所有文件列表,使用递归方式完成
*
* @param filePath
* @return
*/
public void getAllFile(List<File> listFile, File paramFile) {
if (paramFile.isFile()) {// 是文件,则添加到文件列表中,本次调用结束
listFile.add(paramFile);
} else {// 是目录
File[] localFiles = paramFile.listFiles();// 得到目录下子文件数组
if (localFiles != null) {// 目录不为空
for (File localFile : localFiles) {//遍历子文件数组
getAllFile(listFile, localFile);//调用该函数本身
}
}
// 为空目录,本次调用结束
}
}