一、递归算法
File file = new File(filePath); if(file.isDirectory()){ File[] files = file.listFiles(); for (File file1 : files) { if(file1.isDirectory()){ getChileFile(file1.getAbsolutePath()); }else{ System.out.println(file1.getAbsolutePath()); } } }else{ System.out.println(file.getAbsolutePath()); }
二、栈
int total = 0; File file = new File(filePath); List <File> files = new ArrayList<>(); if(file.isDirectory()){ files.add(file); }else{ total++; System.out.println(file.getAbsolutePath()); } while(!files.isEmpty()){ File[] fileArray = files.get(0).listFiles(); for (File file1 : fileArray) { if(file1.isDirectory()){ files.add(file1); }else{ total++; System.out.println(file1.getAbsolutePath()); } } files.remove(0); } System.out.println(total);