递归遍历:
/**
* 遍历文件()
* @param rootFile 文件夹
* @return
*/
public static List<File> findAllFiles(File rootFile){
List<File> results = new ArrayList<>();
if(rootFile.exists()){
if(rootFile.isDirectory()){
for(File file : rootFile.listFiles()) {
results.addAll(findAllFiles(file));
}
}else{
results.add(rootFile);
}
}
return results;
}
public static void main(String[] args){
//测试
for(File file : findAllFiles(new File("/Users/xxxx/Desktop/"))){
System.out.println(file.getAbsolutePath());
}
}
遍历文件(非递归)
/**
* 遍历文件目录(非递归)
*
* @param rootFile 文件夹
* @return
*/
public static List<File> findFiles(File rootFile) {
if (!rootFile.exists())
return new ArrayList<>();
//结果集
List<File> results = new ArrayList<>();
//存储文件夹
List<File> files = new ArrayList<>();
if (rootFile.isDirectory()) {
for (File file : rootFile.listFiles()) {
if(file.isDirectory()){
files.add(file);
}else{
results.add(file);
}
}
} else {
results.add(rootFile);
}
while (!files.isEmpty()){
File fileDir = files.remove(0);
for (File zfile : fileDir.listFiles()) {
if(zfile.isDirectory()){
files.add(zfile);
}else{
results.add(zfile);
}
}
}
return results;
}
public static void main(String[] args) {
String path = "/Users/xxxx/Desktop/";
//测试
List<File> list2 = findFiles(new File(path));
System.out.println(list2.size());
for (File file : list2){
System.out.println(file.getAbsolutePath());
}
}