Java学习笔记_180726_输出给出路径下所有文件,包含任意深度子文件夹下文件
需要便利不同子文件夹,所以用递归方法最简单。递归函数中需要完成的内容:
1> 判断传递参数是文件还是文件夹
2> 如果参数是文件则输出文件路径
3> 如果传递参数是目录则遍历该目录下每一个文件及目录,并且对其调用递归方法
代码如下:
package com.annofyf.findfiles import java.io.File; import java.util.Scanner; public class ExplorerEnhance { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); System.out.println("输入路径:"); String path = scanner.next(); File file = new File(path); if (file.isDirectory()) { getFiles(file); } else { System.out.println("目录不存在!"); } scanner.close(); } public static void getFiles(File f) { if(f.isFile()) { System.out.println(f.getPath()); //return; //如果是文件则输出文件完整路径,由于调用在这里结束,return可写可不写 } else { //TODO 如果是文件夹则对文件夹下每一个文件或文件夹调用getFiles()方法 File[] files= f.listFiles(); for (File file : files) { getFiles(file); } } } }