直接上代码,有不理解的可以留言讨论。
public class FindFile {
public static void main(String[] args) {
File file = new File("D:\\KuGou");
// findall(file);
findallone(file);
}
//封装一个递归方法
// public static void findall(File file){
// File[] listFiles = file.listFiles();
// for (File i : listFiles) {
// if(i.isDirectory()){
// findall(i);
// }else{
// System.out.println(i);
// }
// }
// }
//封装一个不使用递归的方法
public static void findallone(File file){
Queue<File> que = new LinkedList<File>();
ArrayList<File> arr = new ArrayList<File>();
que.offer(file);
while(que.size()!=0){
File poll = que.poll();
for (File file2 : poll.listFiles()) {
if(file2.isDirectory()){
que.offer(file2);
}else{
arr.add(file2);
}
}
}
for (File files: arr) {
System.out.println(files);
}
}
}