Java递归输出指定路径下所有文件及文件夹

package a.ab;

import java.io.File;
import java.io.IOException;

public class AE {

	public static void main(String[] args) {
		File f=new File("D:\DD");
	    new AE().fileList(f);
	} 
	public  void fileList(File fl){
		try{
			File[] fs=fl.listFiles();
			for(File file:fs){
				if(file.isDirectory()){
					System.out.println(file.getName());
					 fileList(file);
				}else{
					System.out.println(file.getName());
				}
		}
		
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

  

listFiles

public File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

如果此抽象路径名不表示一个目录,那么此方法将返回 null。否则返回一个 File 对象数组,每个数组元素对应目录中的每个文件或目录。表示目录本身及其父目录的名称不包括在结果中。得到的每个抽象路径名都是根据此抽象路径名,使用 File(File, String) 构造方法构造的。所以,如果此路径名是绝对路径名,那么得到的每个路径名都是绝对路径名;如果此路径名是相对路径名,那么得到的每个路径名都是相对于同一目录的路径名。

不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。

返回:
抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null
抛出:
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对目录进行读访问

采用递归输出文件及文件夹,首先将指定目录下文件全部遍历出来放到 File[]数组中,然后递归调用输出这个数组的所有元素。

原文地址:https://www.cnblogs.com/LYL-1314/p/5720493.html